我试图执行
$this->Auth->allow()
中的 beforeFilter()
但是,我需要添加整个控制器作为例外,即它需要公开,不需要用户登录。
只是执行$this->Auth->allow( every-function-in-this-controller )
答案?
修改
我有这个:
<?php
App::uses('AppController','Controller');
class AllzonesController extends AppController {
public function __beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('index');
}
public function index() {
$this->layout = 'main';
$this->set('Hello',"Hello world");
}
}
正在转移Auth-login()
答案 0 :(得分:6)
您提出的建议是适合您想要做的事情
public function beforeFilter() {
$this->Auth->allow();
}
阅读API docs
获取当前控制器中不需要身份验证的操作列表,或者不包含允许所有操作的参数。
因此,没有参数的函数应允许普通用户(未登录)访问该控制器的每个操作。
编辑:
抱歉,错过了代码中的版本参考。 In here它说
$this->Auth->allow('*');
是Cake 2.0(以及之前的版本,如@mark所述)
的合适方式答案 1 :(得分:3)
对于CakePHP 2.1之外的版本
$this->Auth->allow()
而不是$this->Auth->allow('*')
和
对我的另一个问题__beforeFiter
不是一个神奇的功能!
<?php
App::uses('AppController','Controller');
class AllzonesController extends AppController {
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('index');
}
public function index() {
$this->layout = 'main';
$this->set('Hello',"Hello world");
}
}