0

我正在为 Laravel 应用程序实现一些访问控制逻辑。如果用户无权查看该资源,我想重定向到“未授权”页面。

我正在为我的网址使用控制器/方法逻辑。

我可以从被调用的控制器/方法重定向,但为了使我的代码更具可扩展性,我想检查父控制器中的 ACL 逻辑,可能是 Base_controller,并在 URI 控制器/方法之前从那里重定向访问。

我试图将重定向添加到构造,或在重定向的构造中调用另一个方法,但无济于事。

所以,我想知道这是否可行,因为'Redirect::to' 似乎只能在 url 中指定的控制器/方法中工作,而在其他任何地方都不起作用 - 对吗?

4

1 回答 1

5

您需要“返回”重定向。您可以在任何地方执行此操作:

return Redirect::to('login')

但是您应该在过滤器中运行逻辑:

public function __construct()
{
    $this->beforeFilter('acl');
}

然后在filters.php

Route::filter('acl', function()
{
    if ($something)
    {
          return Redirect::to('somewhere');
    }
});
于 2013-02-05T15:59:19.217 回答