从父控制器重定向

时间:2013-02-05 10:47:50

标签: laravel

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

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

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

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

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

1 个答案:

答案 0 :(得分:5)

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

return Redirect::to('login')

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

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

然后在filters.php中

Route::filter('acl', function()
{
    if ($something)
    {
          return Redirect::to('somewhere');
    }
});