我正在为Laravel应用程序实现一些访问控制逻辑。如果用户无权查看该资源,我想重定向到“未授权”页面。
我正在为我的网址使用控制器/方法逻辑。
我可以从被调用的控制器/方法重定向,但是为了使我的代码更具可伸缩性,我想在URI控制器之前检查父控制器中的ACL逻辑,可能是Base_controller,并从那里重定向访问/方法。
我尝试将重定向添加到构造中,或者在重定向的构造中调用另一个方法,但无济于事。
所以,我想知道这是否可行,因为'Redirect :: to'似乎只能在url中指定的控制器/方法中工作,而在其他任何地方 - 是正确的吗?
答案 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');
}
});