允许CakePHP Auth中的整个控制器和allow()不起作用

Kar*_*rma 3 php cakephp cakephp-2.3

我试过表演

$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");
    }
}
Run Code Online (Sandbox Code Playgroud)

它正在转移Auth-login()

Nun*_*ser 8

你提出的是适合你想做的事情

public function beforeFilter() {
    $this->Auth->allow();
}
Run Code Online (Sandbox Code Playgroud)

阅读API文档

获取当前控制器中不需要身份验证的操作列表,或者不包含允许所有操作的参数.

因此,没有参数的函数应允许普通用户(未登录)访问该控制器的每个操作.

编辑:

抱歉,错过了代码中的版本参考.在这里它说

 $this->Auth->allow('*');
Run Code Online (Sandbox Code Playgroud)

适用于Cake 2.0(以及之前的版本,如@mark所述)