Laravel 5 资源丰富的路由加中间件
Laravel 5 Resourceful Routes Plus Middleware
是否可以为资源路由的全部或部分项目添加中间件?
例如...
<?php
Route::resource('quotes', 'QuotesController');
此外,如果可能的话,我想让除 index
和 show
之外的所有路由都使用 auth
中间件。或者这是需要在控制器中完成的事情吗?
在 QuotesController
构造函数中你可以使用:
$this->middleware('auth', ['except' => ['index','show']]);
您可以将路由组与中间件概念结合使用:
http://laravel.com/docs/master/routing
Route::group(['middleware' => 'auth'], function()
{
Route::resource('todo', 'TodoController', ['only' => ['index']]);
});
在 Laravel 和 PHP 7 中,在写入
之前,使用多方法排除对我不起作用
Route::group(['middleware' => 'auth:api'], function() {
Route::resource('categories', 'CategoryController', ['except' => 'show,index']);
});
也许这对某人有帮助。
一直在为 Laravel 5.8+ 寻找更好的解决方案。
这是我所做的:
对资源应用中间件,不希望应用中间件的资源除外。 (此处索引并显示)
Route::resource('resource', 'Controller', [
'except' => [
'index',
'show'
]
])
->middleware(['auth']);
然后,创建除第一个之外的资源路由。所以索引并显示。
Route::resource('resource', 'Controller', [
'only' => [
'index',
'show'
]
]);
更新 LARAVEL 8.x
web.php:
Route::resource('quotes', 'QuotesController');
在你的控制器中:
public function __construct()
{
$this->middleware('auth')->except(['index','show']);
// OR
$this->middleware('auth')->only(['store','update','edit','create']);
}
是否可以为资源路由的全部或部分项目添加中间件?
例如...
<?php
Route::resource('quotes', 'QuotesController');
此外,如果可能的话,我想让除 index
和 show
之外的所有路由都使用 auth
中间件。或者这是需要在控制器中完成的事情吗?
在 QuotesController
构造函数中你可以使用:
$this->middleware('auth', ['except' => ['index','show']]);
您可以将路由组与中间件概念结合使用: http://laravel.com/docs/master/routing
Route::group(['middleware' => 'auth'], function()
{
Route::resource('todo', 'TodoController', ['only' => ['index']]);
});
在 Laravel 和 PHP 7 中,在写入
之前,使用多方法排除对我不起作用Route::group(['middleware' => 'auth:api'], function() {
Route::resource('categories', 'CategoryController', ['except' => 'show,index']);
});
也许这对某人有帮助。
一直在为 Laravel 5.8+ 寻找更好的解决方案。
这是我所做的:
对资源应用中间件,不希望应用中间件的资源除外。 (此处索引并显示)
Route::resource('resource', 'Controller', [
'except' => [
'index',
'show'
]
])
->middleware(['auth']);
然后,创建除第一个之外的资源路由。所以索引并显示。
Route::resource('resource', 'Controller', [
'only' => [
'index',
'show'
]
]);
更新 LARAVEL 8.x
web.php:
Route::resource('quotes', 'QuotesController');
在你的控制器中:
public function __construct()
{
$this->middleware('auth')->except(['index','show']);
// OR
$this->middleware('auth')->only(['store','update','edit','create']);
}