【问题标题】:Route class: before route filter路由类:路由过滤器之前
【发布时间】:2014-12-26 22:42:59
【问题描述】:

我的班级过滤器没有按预期工作,但我不确定原因。
路线如下:

//Filter checks if the user is currently authenticated 
Route::group(array('before' => 'auth'), function() { 
    Route::resource('organisers', 'OrganiserController'); 
}); 

过滤器类已正确链接:
Route::filter('auth', 'AuthFilter');

过滤器类也按预期调用。
奇怪的是,当过滤器类返回一个对象(json响应)时,它立即被发送回客户端。

如果我没有从过滤器类发回任何东西(如果没有错误),那么 Laravel4 会抛出错误,而不是执行 OrganizerController 索引方法。
url 跳转到 /login,但我不知道为什么。

错误如下:

【问题讨论】:

    标签: laravel-4 routes


    【解决方案1】:

    auth 过滤器实际上按预期工作。如果你从过滤器返回任何东西(除了return Redirect),Laravel 会将该响应发送到浏览器并结束你的请求。如果用户未登录,则 auth 过滤器将重定向到 /login 路由,该路由应包含您的登录页面。

    您可以在app/filters.php 中更改auth 的行为,但目前它正在尝试查找不存在的登录页面。

    【讨论】:

    • 谢谢。我正在构建一个 REST api,并开发了一个自定义身份验证类来自己处理传入的请求。我将过滤器名称更改为 api.auth 而不是 auth,现在它可以完美运行了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-06
    • 1970-01-01
    • 2014-12-14
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多