我将粘贴代码,以便您理解我要做什么,基本上我做了一个路由过滤器,并告诉我如果用户帐户未激活(我通过电子邮件链接进行注册),我想重定向。

Route::filter('activated', function()
{
    if (Session::get('account_activated') == 0)
    {
        return Redirect::to('myaccount', 'MyAccountController@notActive');
    }
});

Route::group(array('before' => 'auth'), function()
{
    // Only authenticated users may enter...
    Route::get('myaccount', 'MyAccountController@index');
});


当我登录时,我将“ account_activated”密钥与数据库中的值(对应于用户)放入会话中,因此...
当我尝试在这里输入时:

Route::group(array('before' => array('auth', 'activated')), function()
{
    // Only authenticated and activated users may enter...
    Route::get('sell', 'SellController@index');
});


我收到此错误:HTTP状态代码“ 0”无效。
有人知道为什么吗?谢谢!

最佳答案

当您要对一个路由使用多个过滤器时,必须将它们放在一个由|分隔的字符串中。

Route::group(array('before' => 'auth|activated'), function()
{
    // Only authenticated and activated users may enter...
    Route::get('sell', 'SellController@index');
});


更新:
状态码0表示Laravel执行请求时出了点问题。发生这种情况时,最好查看Laravel日志或Web服务器日志。

10-08 20:28