如何为laravel全局过滤器定义异常路由?

时间:2013-02-05 07:51:13

标签: php laravel

我想在运行除安装相关路由之外的任何路由之前运行一个检查应用程序是否已安装的过滤器,因为它会导致无限重定向循环。

这是我应该做的:

Route::filter('before', function()
{
    if (!User::isInstalled()) {
        return Redirect::to_route('install'); // infinite redirect loop
    }
});

有没有办法为此过滤器添加例外?或以任何方式检查当前的女巫路线是否正在运行? 任何的想法? 感谢

2 个答案:

答案 0 :(得分:2)

试试这个:

Route::filter('before', function()
{
    if ( ! User::isInstalled() and Request::segment(1) !== 'install') {
        return Redirect::to_route('install');
    }
});

答案 1 :(得分:0)

我从laravel api, Laravel\Routing\Route找到了这个可能是解决方案的方法

Route::filter('before', function()
{
    if ( ! Application::isInstalled() && ! URI::is('install*') ) {
        return Redirect::to_route('install');
    }
});

但我认为他们应该更好的方法强制某些路线在过滤之前不使用 感谢bstrahija