【发布时间】:2026-01-19 12:30:01
【问题描述】:
我的网站中有一个表users,如果用户是管理员或他/她的帐户,则允许用户更新用户。我可以将此规则放在中间件中并将其强加在路由上,但我想在其中创建单独的中间件和OR。我可以这样做吗?
以下代码
Route::group(['middleware' => ['admin','Owner']],
function () {
Route::resource('roles', 'RoleController');
Route::resource('locations', 'LocationController');
Route::resource('recipients', 'RecipientController');
Route::resource('classifications', 'ClassificationController');
});
具有AND 行为。我认为可以使用web.php 或UserController 中的一些if ... else ... 语句来做到这一点,但我需要知道是否还有其他出路。
提前致谢
更新
这里是 Owner 中间件
class OwnerMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next, $id)
{
if(Auth::guest())
return abort(403, 'Access Denied');
if(Auth::user()->id != $id)
return abort(403, 'Access Denied');
return $next($request);
}
}
然后我将$id参数传递给它。
【问题讨论】:
-
我们可以看看你的 Owner 中间件代码吗?
-
希望对您有所帮助*.com/questions/39344836/…
-
@aceraven777 我更新代码
标签: laravel laravel-5 routes laravel-middleware