沒有區別。 Laravel是允許您以多種方式完成許多任務的框架。
我更願意加入路由過濾器對它們進行分組,例如:
// logged users paths
Route::group(
['before' => 'auth'],
function() {
Route::get('/dashboard', [
'as' => 'dashboard',
'uses' => '[email protected]'
]);
}
);
// paths only for admin
Route::group(
['before' => 'admin'],
function() {
Route::get('/admin',
['as' => 'admin_dashboard',
'uses' => '[email protected]'
]);
Route::get('/categories/{page?}',
['as' => 'categories',
'uses' => '[email protected]'
])->where('page', '[1-9]+[0-9]*');
}
);
有這樣使用的一個好處 - 它更容易看,如果所有航線都有正確的過濾器。
假設您只想爲登錄用戶顯示一些內容,並且需要使用auth過濾器。您有許多控制器爲登錄用戶顯示內容。
如果直接在這些控制器或父控制器構造函數中使用beforeFilter
下面的事情都可能發生:
- 你可能會忘記把beforeFilter在所有的控制器構造
- 你可以在你的控制器構造忘記運行父構造函數(你有beforeFilter的地方)
- 你可以不擴展你想要的類(例如,你擴展BaseController,並且在AuthController中定義了beforeFilter,並且在一個或某些類中擴展了BaseController)
這些情況可能會導致您顯示未登錄用戶的內容,因爲您需要記住有關auth在每個控制器中對其進行過濾的情況,並且如果要確保自己做的都正確,則需要查看所有控制器的代碼。
使用路由分組(如上所示),您可以輕鬆查看一個文件(當然假設您使用一個文件進行路由),您將看到哪些路由使用auth
過濾器,哪些不使用。
當然,我認爲很多人會對此事有自己的看法,但這是我個人偏好在路線中使用過濾器。