Route::middleware(['admin'])
->prefix('users')
->name('users.')
->group(function() {
Route::get('management/list', '\App\Http\Controllers\UserController@list');
Route::resource('management', '\App\Http\Controllers\UserController');
});
我有两个级别的用户:Administrator
(中间件是
admin
)和
Collaborator
(中间件是
auth
)。我的问题是来自用户资源的
edit
和
update
的路线:
users/management/{management}/edit
如何从身份验证中间件对用户执行类似的操作,以便仅在参数是协作者用户自己的用户 ID 时才允许路由?
Route::middleware(['auth'])
->prefix('users')
->name('users.')
->group(function() {
Route::get('management/{auth()->id}/edit', '\App\Http\Controllers\UserController@edit');
});
Route::middleware(['auth'])
->prefix('users')
->name('users.')
->group(function() {
Route::get('management/currentuser/edit', '\App\Http\Controllers\UserController@edit');
});
这也是更好的做法,因为您查找的是登录用户而不是任何用户。