除一条路线外基于模式的过滤器

时间:2014-08-17 12:59:46

标签: php laravel filter laravel-routing

我有这些过滤器

Route::when('app/*', 'auth');
Route::when('app/*', 'filled_basic_info');

如果尚未填写用户的基本信息,则“filled_basic_info”过滤器会将用户重定向到“users.personal”路径。

'users.personal'路线指向“app / personal”网址。

我的问题是,如何将'filled_basic_info'过滤器设置为应用于除'users.personal'路线以外的所有导致'app / *'的路线?

我试过了

Route::when('app/*', 'filled_basic_info', array('except' => 'users.personal'));

但它不起作用。

我希望避免将所有'app / *'路线分组,因为我需要在我现有的所有套餐上进行分组。

谢谢。

1 个答案:

答案 0 :(得分:0)

我最后编辑了这样的过滤器:

Route::filter('filled_basic_info', function()
{
    if (empty(Auth::user()->first_name) || empty(Auth::user()->last_name))
    {
        if(!(Route::currentRouteName() == "user.personal"))
            return Redirect::route('user.personal')->withAlerts(['Please enter your name below to continue.']);
    }
});