2014-10-30 177 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