您好,我嘗試使用像下面的代碼這樣的中間件來驗證 OR 運算子
Route::get('/page', [Controller::class, 'index'])->middleware(['mid1','mid2']);
在這個例子中,它使用 AND 運算子而不是 OR 我也使用了這樣的組
Route::group(['middleware' => 'mid1'], function () {
Route::get('/page', [Controller::class, 'index']);
});
Route::group(['middleware' => 'mid2'], function () {
Route::get('/page', [Controller::class, 'index']);
});
但是使用具有相同路由的組,組中的第二條路由是唯一可讀的。請提供任何幫助
uj5u.com熱心網友回復:
laravel 中沒有內置的東西可以做這樣的事情。
您可以創建另一個中間件來包含您需要應用的兩個條件。
在你的中間件中:
public function handle($request, Closure $next) {
if (condition1 || condition2) {
return $request($next);
}
abort('statusCode');
}
uj5u.com熱心網友回復:
我同意@Faesal。最好將兩個中間件邏輯組合成一個中間件。
public function handle($request, Closure $next) {
if (your condition) {
//logic inside mid1 handler
}else{
//logic inside mid2 handler
}
}
雖然不推薦,但您可以將您的條件放在路由檔案中。
if(your conditions){
Route::group(['middleware' => 'mid1'], function () {
Route::get('/page', [Controller::class, 'index']);
});
}else{
Route::group(['middleware' => 'mid2'], function () {
Route::get('/page', [Controller::class, 'index']);
});
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/465355.html
上一篇:在ReactJS中使用createUserWithEmailAndPasswordfirebaseauth創建用戶時如何區分管理員和客戶角色
