1

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

这是我应该做的:

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

有没有办法给这个过滤器添加例外?或者有什么方法可以检查当前女巫路线是否正在运行?任何的想法?谢谢

4

2 回答 2

2

试试这个:

Route::filter('before', function()
{
    if ( ! User::isInstalled() and Request::segment(1) !== 'install') {
        return Redirect::to_route('install');
    }
});
于 2013-02-05T08:53:24.273 回答
0

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

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

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

于 2013-02-05T13:24:33.893 回答