Laravel 中间件/路由组
Laravel Middleware / Route Groups
我是 Laravel 的新手,所以这个问题对某些人来说可能是显而易见的。
在 运行ning 检查每个 HTTP 请求的情况下,例如 用户身份验证。 运行 这些检查是否有更好、更有效或更简单的正确方法。从我最初的研究来看,这似乎可以使用中间件来完成,例如
public function __construct()
{
$this->middleware('auth');
}
似乎也可以使用路由组,例如。
Route::group(['middleware' => 'auth'], function () {
Route::get('/', function () {
// Uses Auth Middleware
});
Route::get('user/profile', function () {
// Uses Auth Middleware
});
});
这两种方式有什么好处吗?除了不必在每个控制器中放置 $this->middleware('auth');
的明显好处外,还需要检查身份验证。
谢谢
编辑..
在接受了您的建议后,我尝试使用路由分组来控制我的 Auth MiddleWare。但这似乎破坏了我的网站。
Route::group(['middleware' => 'auth'], function () {
Route::auth();
Route::get('/home', 'HomeController@index');
Route::get ( '/redirect/{provider}', 'SocialAuthController@redirect' );
Route::get ( '/callback/{provider}', 'SocialAuthController@callback' );
});
我是不是遗漏了什么明显的东西?
没有真正的区别,我个人对标准中间件使用组并在构造中放置异常
使用 Route 组对于 maintenance/modification 来说很容易,否则你将不得不记住你使用特定中间件的每个控制器,当然这在中小型应用程序中不是一个问题,但这将在有很多控制器和对中间件的引用的大型应用程序中很难。
你快完成了,只需删除 Route::auth()
:
Route::group(['middleware' => 'auth'], function () {
Route::get('/home', 'HomeController@index');
//add more Routes here
});
建议的选项对我不起作用,但当我查看 laravel 文档时,我发现:
Route::middleware(['web'])->group(function () {
//Your routes here
});
对我有用。 Laravel 8.*
我是 Laravel 的新手,所以这个问题对某些人来说可能是显而易见的。
在 运行ning 检查每个 HTTP 请求的情况下,例如 用户身份验证。 运行 这些检查是否有更好、更有效或更简单的正确方法。从我最初的研究来看,这似乎可以使用中间件来完成,例如
public function __construct()
{
$this->middleware('auth');
}
似乎也可以使用路由组,例如。
Route::group(['middleware' => 'auth'], function () {
Route::get('/', function () {
// Uses Auth Middleware
});
Route::get('user/profile', function () {
// Uses Auth Middleware
});
});
这两种方式有什么好处吗?除了不必在每个控制器中放置 $this->middleware('auth');
的明显好处外,还需要检查身份验证。
谢谢
编辑..
在接受了您的建议后,我尝试使用路由分组来控制我的 Auth MiddleWare。但这似乎破坏了我的网站。
Route::group(['middleware' => 'auth'], function () {
Route::auth();
Route::get('/home', 'HomeController@index');
Route::get ( '/redirect/{provider}', 'SocialAuthController@redirect' );
Route::get ( '/callback/{provider}', 'SocialAuthController@callback' );
});
我是不是遗漏了什么明显的东西?
没有真正的区别,我个人对标准中间件使用组并在构造中放置异常
使用 Route 组对于 maintenance/modification 来说很容易,否则你将不得不记住你使用特定中间件的每个控制器,当然这在中小型应用程序中不是一个问题,但这将在有很多控制器和对中间件的引用的大型应用程序中很难。
你快完成了,只需删除 Route::auth()
:
Route::group(['middleware' => 'auth'], function () {
Route::get('/home', 'HomeController@index');
//add more Routes here
});
建议的选项对我不起作用,但当我查看 laravel 文档时,我发现:
Route::middleware(['web'])->group(function () {
//Your routes here
});
对我有用。 Laravel 8.*