2014-10-30 158 views
0

我的类过滤器不能按预期工作,但我不确定为什么。
路线如下所示:路由类别:路由过滤器

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

过滤器类被正确地连接:
路线::滤波器( 'AUTH', 'AuthFilter筛选');

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

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

错误如下所示:

enter image description here

回答

0

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

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

+0

谢谢。我正在构建一个REST api,并开发了一个自定义auth类来自己处理传入的请求。我将过滤器名称更改为api.auth而不是auth,现在它完美地工作。 – Trace 2014-10-31 01:06:05