运行 CakePHP 2.2 并有一个在控制器上拒绝的组,然后在其他几个控制器上允许。如果我以该组的用户身份登录并尝试访问我没有明确权限的控制器,则会收到以下错误:
致命错误:第 672 行 /var/www/project/lib/Cake/Network/CakeResponse.php 中允许的内存大小为 134217728 字节已用尽(尝试分配 32 字节)
并且:
致命错误:第 155 行 /var/www/project/lib/Cake/Event/CakeEventManager.php 中允许的内存大小为 134217728 字节已用尽(尝试分配 80 字节)
这仅在用户无权访问控制器时发生。任何想法为什么会发生这种情况?AppController 配置为:
public $components = array(
'Acl',
'Auth' => array(
'authorize' => array(
'Actions' => array('actionPath' => 'controllers'),
),
'Form' => array(
'userModel' => 'User',
'fields' => array(
'username' => 'username',
'password' => 'password'
)
),
'loginAction' => array(
'controller' => 'users',
'action' => 'login',
),
'loginRedirect' => '/users/dashboard', //'/admin/customers/index',//'/admin/tread_designs', // '/shopfloor/build/app.html',
'logoutRedirect' => '/users/login', //'/shopfloor/build/app.html'
)
);
和之前过滤器:
public function beforeFilter() {
parent::beforeFilter();
if($this->RequestHandler->responseType() == 'json'){
$this->RequestHandler->setContent('json', 'application/json' );
}
$this->Auth->ajaxLogin = '/users/session_expired';
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
$this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');
}
对此感到困惑,感谢您的帮助。此外,如果我将内存限制提高到 1024MB,它就会超时。有什么蠢事发生了。
更新 当我tail -f mysql查询日志时,我可以看到生成此错误的请求一遍又一遍地尝试相同的3个查询。