Laravel 分组路由啥是最好的前缀或中间件
Posted
技术标签:
【中文标题】Laravel 分组路由啥是最好的前缀或中间件【英文标题】:Laravel grouping routes what is best prefix or middlewareLaravel 分组路由什么是最好的前缀或中间件 【发布时间】:2018-06-08 05:12:42 【问题描述】:当我开始考虑对路线进行分组并查看文档时。我在那里输了。前缀、中间件等东西太多了。
对路线进行分组的最佳方式是什么?
Route::group(['middleware' => 'admin'], function () );
Route::group(['prefix' => 'admin'], function () );
Route::group(['namespace' => 'admin'], function () )
哪种方法最好?为什么?什么时候用什么方法?
【问题讨论】:
没有最好的方法。前缀、中间件和命名空间有不同的用途。 你能详细说明他们的目的吗? 嗯,几年前我的一个愚蠢问题 【参考方案1】:两者不同但同时使用两者 路由中间件分组和路由前缀的最佳技术避免不必要的输入
Route::group(['prefix' => 'admin','middleware' => ['auth:admin']], function()
Route::get('dashboard','AdminController@dashboard');
);
【讨论】:
【参考方案2】:等等。前缀和中间件是两个不同的东西
prefix
是一种为路线添加前缀并避免不必要的输入的方法,例如:
Route::get('post/all','Controller@post');
Route::get('post/user','Controller@post');
这可以使用前缀post
进行分组
Route::group(['prefix' => 'post'], function()
Route::get('all','Controller@post');
Route::get('user','Controller@post');
)
另一方面,中间件:
中间件提供了一种方便的机制来过滤进入您的应用程序的 HTTP 请求。例如,Laravel 包含一个中间件,用于验证您的应用程序的用户是否经过身份验证。如果用户未通过身份验证,中间件会将用户重定向到登录屏幕。但是,如果用户通过了身份验证,中间件将允许请求进一步进入应用程序。
例如,现在使用最后一个示例,我希望用户在我的发布路线中进行身份验证。我可以像这样将中间件应用到这个组:
Route::group(['prefix' => 'post', 'middleware' => ['auth']], function()
Route::get('all','Controller@post');
Route::get('user','Controller@post');
)
您应该查看文档以获取更多信息。
https://laravel.com/docs/5.5/middleware
https://laravel.com/docs/5.5/routing#route-groups
【讨论】:
它就像一个过滤器。在您的请求到达控制器之前(或之后,取决于中间件类型),中间件会处理请求并执行验证、更正等操作...... 酷,如何对所有管理路由进行分组。像 admin/sales/report、admin/sales/report/edit/1 ??? 酷,如何对所有管理路由进行分组。像 admin/sales/report、admin/sales/report/edit/1 ???'prefix' => 'admin/sales/report'
和您的路线内以上是关于Laravel 分组路由啥是最好的前缀或中间件的主要内容,如果未能解决你的问题,请参考以下文章