CakePHP Auth如何允许特定的控制器和操作

Chr*_*ang 10 authentication controller cakephp

我有一个"帖子"和一个"用户"控制器.我使用Auth组件,我希望所有用户都可以访问"Post.index",但只有登录用户才能访问"User.index".

在我的app_controller.php中,我有这个

$this->Auth->allow('signup', 'confirm', 'index');
Run Code Online (Sandbox Code Playgroud)

但是所有用户都可以访问post.index和user.index.如何在allow-method中指定Controller?

这不适合我:

$this->Auth->allow('signup', 'confirm', 'Post.index');
Run Code Online (Sandbox Code Playgroud)

更新 我从app_controller.php中删除了'index',而是将其设置在post控制器的beforeFilter方法中:

function beforeFilter() 
{
    parent::beforeFilter();
    $this->Auth->allow('index');
}
Run Code Online (Sandbox Code Playgroud)

我还在app_controller中设置了一个变量"loggedIn",而没有调用"parent :: beforeFilter();" 我收到了一个"未定义的变量"通知.

thx sibidiba

sib*_*iba 13

这段时间不会奏效.你可以试试'/'.如果失败,你应该单独设置$this->Auth->allow('index')PostController和UserController ::beforeFilter().不要忘记调用parent :: beforeFilter().

  • 完美答案!它不适用于'/'所以我从app_controller中删除了'index'并允许它在post控制器中:function beforeFilter(){parent :: beforeFilter(); $这 - > Auth->允许( '索引'); } (3认同)