从父控制器重定向

sea*_*ers 0 laravel

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

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

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

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

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

Lau*_*nce 5

你需要'返回'重定向.你可以从任何地方做到这一点:

return Redirect::to('login')
Run Code Online (Sandbox Code Playgroud)

但是你应该在filter中运行逻辑:

public function __construct()
{
    $this->beforeFilter('acl');
}
Run Code Online (Sandbox Code Playgroud)

然后在filters.php中

Route::filter('acl', function()
{
    if ($something)
    {
          return Redirect::to('somewhere');
    }
});
Run Code Online (Sandbox Code Playgroud)