Route::group(['middleware' => 'auth'],function(){ //routes });
但是因为我必须在组中创建组,所以一切都变得非常混乱,例如:
Route::group(['middleware' => 'auth'],function(){ Route::group(['middleware' => 'status'],function(){ //routes }); });
目前我有20个控制器,所以每个控制器包含大约5个路由器.你能否建议我在大项目中使用中间件更有效率的方法.你用什么方式?提前致谢!
如果您拥有共享相同中间件集的路由组,那么最简单的方法是在第一个示例中执行的操作:
Route::group(['middleware' => 'auth'],function(){ //routes });
如果你有一些共享公共中间件的根,但是每个中间件都可以应用一些特定的中间件,那么在第二个示例中使用现有组嵌套路由和路由组是一种方法:
Route::group(['middleware' => 'auth'],function(){ Route::group(['middleware' => 'status'],function(){ //routes }); Route::get('/uri/',['middleware' => 'some_other_middleware']); });
最后,当不同的路由具有不同的中间件集并且您无法以任何方式对它们进行分组时,您需要为每个中间件应用一组中间件:
Route::get('/uri1/',['middleware' => 'some_middleware']); Route::get('/uri2/',['middleware' => 'some_other_middleware']);
简而言之 – 如果您对要应用于哪些路由的中间件有复杂的规则,那么在routes.PHP文件中设置它将反映复杂性.
您在中间件中执行的某些操作应该属于应用程序中的某个其他层并且移动逻辑可能会简化routes.PHP,但这一切都取决于您拥有的路由和中间件.