小编eme*_*his的帖子

登录后CakePHP auth组件重定向到登录

我开始使用CakePHP,我在设置Auth组件时遇到了问题.每次用户注销时,cake都会将其重定向回登录. 您将看到我在logout()期间尝试删除/取消设置某些cookie.这是因为我正在使用Wordpress网站设置单点登录,因此我希望用户从两个站点注销.

我的AppController:

class AppController extends Controller {    

public $components = array(
    'Session',
    'Cookie',
    'Auth'      => array(
        'loginRedirect'     => array('controller' => 'questions', 'action' => 'index'), 
        'logoutRedirect'    => array('controller' => 'pages', 'action' => 'display', 'home')            
    )
);
public function beforeFilter() {
    $this->Auth->allow('index', 'view', 'login', 'logout', 'display');
}
}
Run Code Online (Sandbox Code Playgroud)

UsersController:

class UsersController extends AppController {

public function beforeFilter() {
    parent::beforeFilter();
    $this->Auth->allow('add', 'logout', 'login');
}
Run Code Online (Sandbox Code Playgroud)

...

public function login() {
//who cares
}

public function logout() {

    $wp_cookie = grab_wp_cookie(); //this grabs …
Run Code Online (Sandbox Code Playgroud)

cookies cakephp cakephp-2.0

5
推荐指数
1
解决办法
3026
查看次数

CakePHP:如何在视图中使用Controller :: referer()

我收到以下错误:

Strict (2048): Non-static method Controller::referer() should not be called statically,
assuming $this from incompatible context [APP/View/Questions/admin_edit.ctp, line 20]
Run Code Online (Sandbox Code Playgroud)

由此引起的:

//in app/View/Questions/admin_edit.ctp
echo $this->Html->link('Cancel', Controller::referer() );
Run Code Online (Sandbox Code Playgroud)

为什么?

php cakephp cakephp-2.0

5
推荐指数
1
解决办法
1万
查看次数

CakePHP:如何使用表单助手同时更新多条记录

在模型测试的编辑页面上,我希望能够更新来自同一表单的所有相关(通过 hasMany)问题的“Questions.order”字段。

我已经准备好了关于 saveMany()/saveAll()Cake book 章节,我正在使用它,Model.0.field syntax但我不知道如何告诉 CakePHP哪个记录对应于哪个输入。#in应该Model.#.field对应问题的 id 字段吗?这是我目前正在做的事情:

 echo $this->Form->create( 'Question', array('action'=>'order'));

$n = 0;
foreach ($questions_array as $question) : ?>
        <?php echo $this->Form->input('Question.'.$n.'.order' ); ?>
        <?php echo $this->Form->input('Question.'.$n.'.id', array('type'=>'hidden', 'value'=>$question['Question']['id']) ); ?>
        <input type="submit" value="Save" />
...
$n++;
endforeach;
$this->Question->Form->end();
Run Code Online (Sandbox Code Playgroud)

表单提交并似乎保存,但更新的order值与正确的问题记录不对应。我究竟做错了什么?

更新

这是order我的控制器中的操作:

public function admin_order() {
    $data = $this->request->data;
    $this->Question->saveAll($data['Question']);
    $this->Session->setFlash( "Order saved.");
    $this->redirect( $this->referer() );
}
Run Code Online (Sandbox Code Playgroud)

php cakephp cakephp-2.0 cakephp-2.1

5
推荐指数
1
解决办法
1万
查看次数

HTML页面中的PDF:PDF.js是否可安全生产?

我正在研究如何通过我们网站上的HTML页面可靠地查看PDF文件.我发现很多对PDF.js的引用,看起来很酷,但几乎没有文档.开发似乎很活跃,但我不知道它现在是否是生产项目的现实选择.

Github和Mozilla上的语言充满了"实验......"和"测试......"但该项目似乎已经存在了足够长的时间才能有一个稳定的版本.

如果答案是肯定的,那么在任何地方都有文件吗?

编辑:我不知道为什么关闭6个赞成票,一个完全可以回答的问题,并且没有任何"非建设性的辩论".

html javascript pdf embedding

5
推荐指数
0
解决办法
797
查看次数

CakePHP:发布的文件数据未包含在request-> data中

我正在尝试将文件上传到第三方端点,但我不能直接从我的表单发布文件,因为API需要一个我无法向最终用户公开的api_key.因此,我的计划是将表单指向控制器/操作并从那里发布数据.但是,当我debug($this->request->data)从控制器内部时,文件数据丢失.

视图上的表单:

echo $this->Form->create('Media', array('type'=>"file", 'url'=>array('controller'=>'media', 'action'=>'upload') ) );
echo $this->Form->input('name', array("name"=>"name") );
echo $this->Form->input('file', array('type'=>'file', "name"=>"file") );
echo $this->Form->input('project_id', array('type'=>'hidden', "name"=>"project_id", "value"=>$project["Project"]['hashed_id']) );
//THIS CANNOT BE HERE: echo $this->Form->input('api_password', array('type'=>'hidden', "name"=>"api_password", "value"=>'xxxxxxx') );
echo $this->Form->end("Submit");
Run Code Online (Sandbox Code Playgroud)

这是我debug()从控制器请求数据时看到的内容:

array(
    'name' => 'Some Name',
    'project_id' => 'dylh360omu',
)
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?

php post cakephp cakephp-2.0

5
推荐指数
1
解决办法
5141
查看次数

长URL(超出设备宽度)的响应式解决方案

正如标题所暗示的那样,在构建响应式网站时,我常常遇到一个问题,即长(ish)URL会破坏我的流畅网格并导致较小设备上的水平滚动.因为它们是一根长串,它们不会包裹并将容器的宽度推到比设备宽度更宽的位置......

 <--device-->
______________
|             |
| http://longurlthatdoesntfit.com
|             |
|             |
Run Code Online (Sandbox Code Playgroud)

有时我会制作容器,overflow:hidden但只是在URL的末尾切掉它,它往往会锁定毛病.另一种方法可能是缩小较小设备上的字体大小,但在URL长度不同的情况下,这意味着将其缩小以确保它总是有足够的空间.

肯定有更好的办法.

html css mobile responsive-design

5
推荐指数
2
解决办法
5145
查看次数

Crontab无法在任何宝石上工作

我的linux服务器正在运行带有Nginx/unicorn的Rails 4应用程序.

我正在使用Whenever gem来安排任务.一切正常,直到几天前cron工作似乎已停止运行.

这是在我的schedule.rb文件中:

every 5.minutes do
    runner "Video.send_to_wistia", environment: 'production'
end
Run Code Online (Sandbox Code Playgroud)

这是我跑步时看到的crontab -l:

# Begin Whenever generated tasks for: myapp
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /bin/bash -l -c 'cd /home/myuser/myapp && bin/rails runner -e production '\''Video.send_to_wistia'\'''
# End Whenever generated tasks for: myapp
Run Code Online (Sandbox Code Playgroud)

我重新启动了独角兽.我也确保运行:

whenever --update-crontab myapp
Run Code Online (Sandbox Code Playgroud)

在我的video.rb文件中,其中包含应该运行的操作,我放置了一些日志代码:

   def self.send_to_wistia
        logger.debug( "Sending videos to wistia at #{Time.now}" )
        ...
Run Code Online (Sandbox Code Playgroud)

我一直在看日志,没有任何东西出现在那里.

PS:我的第一直觉是,该网站可能正在开发模式下运行(每当任务未配置为运行时),但似乎并非如此,因为我现在看到记录进入我的生产数据库.

更新: 作为我的应用程序的用户,当我运行时,service cron status我得到这个:cron: unrecognized service.但我不确定这是在检查用户的crontab还是系统范围.

Update2: 这是我跑步时看到的pgrep …

linux ruby-on-rails nginx crontab whenever

5
推荐指数
1
解决办法
7087
查看次数

CakePHP:尝试生成架构时出错

我正在尝试开始使用CakePHP架构: app/Console/cake schema generate

我收到以下错误:

Welcome to CakePHP v2.3.0 Console
---------------------------------------------------------------
App : app
Path: /Applications/MAMP/htdocs/mysite/app/
---------------------------------------------------------------
Cake Schema Shell
---------------------------------------------------------------
Error: Database connection "Mysql" is missing, or could not be created.
Run Code Online (Sandbox Code Playgroud)

这很令人困惑,因为站点运行正常,因此Config/database.php中的DB凭据是正确的.

更新: 因为我正在使用MAMP,所以我在$ defualt数组中的Config/database.php中添加了以下内容:

'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',
Run Code Online (Sandbox Code Playgroud)

现在我没有得到原始错误,而是一些新错误:

Welcome to CakePHP v2.3.0 Console
---------------------------------------------------------------
App : app
Path: /Applications/MAMP/htdocs/mysite/app/
---------------------------------------------------------------
Cake Schema Shell
---------------------------------------------------------------
Generating Schema...
Notice Error: Schema generation error: invalid column type enum('normal','unlimited_time','admin','extra_time') for Attempt.type does not exist in DBO in [/Applications/MAMP/htdocs/mysite/lib/Cake/Model/CakeSchema.php, line 616]

Notice Error: …
Run Code Online (Sandbox Code Playgroud)

php mysql cakephp cakephp-2.0

5
推荐指数
1
解决办法
2353
查看次数

SVG 属性和样式之间是否存在性能差异?

我正在处理涉及许多小元素的大型 SVG 粒子动画。有时高达 1000。当我为这么多元素设置动画时,浏览器似乎很挣扎,所以我正在寻找优化代码的方法,以获得更好、更流畅的性能(尤其是 Firefix)。

我的主要问题是,例如,将元素的stroke属性设置为属性或样式之间是否有任何区别:

<circle r="0.15" cx="84" cy="782" stroke-width="6" stroke="transparent" style="fill: #ffffff;"></circle>
Run Code Online (Sandbox Code Playgroud)

对比

<circle r="0.15" cx="84" cy="782" stroke-width="6" stroke="transparent" style="stroke:transparent; stroke-width:6; fill: #ffffff;"></circle>
Run Code Online (Sandbox Code Playgroud)

我正在使用 D3.js 添加一堆这些并让它们四处移动......在 Chrome 变得笨拙之前,1000 似乎是大致的限制。Firefox 更糟糕。

如果您有任何其他性能建议,也欢迎提出。

按要求更新

这是我创建节点的方式:

var makeNode = function(coeficient, x, y) {
    coeficient = coeficient || 1;
    return {
        radius: (Math.random() * coeficient ).toFixed(2), 
        cx: function() { return x || Math.round(Math.random()*width) }, 
        cy: function() { return y || Math.round(Math.random()*height) }
    }
};

var nodes1 = d3.range(300).map( …
Run Code Online (Sandbox Code Playgroud)

javascript performance svg cross-browser d3.js

5
推荐指数
1
解决办法
886
查看次数

当应用程序在后台时,JavaScript是否会运行?

让我们想象一下,我有一个简单的javascript网站:

t = setInterval( callback, 30*1000 );
var callback = function() {
    document.write('foobar');
};
Run Code Online (Sandbox Code Playgroud)

如果用户从移动设备访问我的网站,我想知道在页面/应用程序在后台后回调是否会继续执行.我知道所有的移动设备都不一样,所以为了清楚起见,我们要确定一些特定的场景:

  1. iOS设备使用Mobile Safari
  2. iOS设备使用带有UIWebView的本机应用程序
  3. 默认互联网应用中的Android设备
  4. Android设备使用带有WebView的本机应用程序

在这些情况下(如果有的话)用户会在一小时后返回到满屏的foobars?

更新

  1. 根据这个家伙的说法,iOS 8+(在撰写本文时刚刚发布):

现在JavaScript继续执行,即使是非活动选项卡(计时器减慢到1s频率),甚至在后台使用Safari.

javascript android mobile-application ios

5
推荐指数
0
解决办法
877
查看次数