0

在我尝试使用谷歌搜索找到解决方案后,我仍然没有找到任何对我有帮助的东西。问题很简单,我想使用另一个模型进行用户认证。手册向我们展示的方式,不知何故,行不通。

我的 AppController 如下所示:

public $components = array(
        'Auth',
        'DebugKit.Toolbar'
    );

    public function beforeFilter()
    {
        parent::beforeFilter();
        if (isset($this->request->params["intranet"]) && $this->request->params["intranet"] == 1) {
            $this->Auth = array(
            "loginAction" => array(
                "intranet" => true,
                "controller" => "employees",
                "action" => "login"
            ),
            "authenticate" => array(AuthComponent::ALL => array("userModel" => "Employee"))
        );
            $this->layout = "intranet";
        }
    }

我打开什么 url 无关紧要,CakePHP 总是将我重定向到 /users/login。当然,我在控制器中运行 parent::beforeFilter()。

编辑:好吧,好像我错过了 userModelloginAction似乎是正确的关键字,但是在我将其更改为array("controller" => "employees", "action" => "login")之后它仍然将我重定向到 /用户/登录...

4

1 回答 1

0

哦,天哪,我太笨了……我猜大多数程序员在读完这篇文章后已经有了脸,但是对于可能遇到同样问题的新 CakePHP/PHP 开发人员来说:

在上面的代码中,我用数组覆盖了 $this->Auth。解决方案:

$this->Auth->loginAction = array(
                "intranet" => true,
                "controller" => "employees",
                "action" => "login"
            );
            $this->Auth->authenticate = array(AuthComponent::ALL => array("userModel" => "Employee"));
于 2013-03-17T22:02:07.390 回答