全てのルートに対して同時にミドルウェアを指定する方法
\app\Http\Kernel.phpファイル内でグローバルミドルウェアを登録します。
protected $globalMiddleware = [
\App\Http\Middleware\ProxyTrust::class,
\Vendor\CorsManager\HandleCorsRequests::class,
\App\Http\Middleware\MaintenanceModeCheck::class,
\Illuminate\Foundation\Http\Middleware\PostSizeValidation::class,
\App\Http\Middleware\StringTrimming::class,
\Illuminate\Foundation\Http\Middleware\NullConversionForEmptyStrings::class,
];
特定のルートファイル内のすべてのルートに同時にミドルウェアを適用する方法
app\Providers\RouteConfigProvider.phpファイル内でルートファイルとミドルウェアを指定します。
public function initialize()
{
$this->setupRateLimits();
$this->defineRoutes(function () {
Route::prefix('api')
->useMiddleware('api')
->namespace($this->namespace)
->group(base_path('routes/api_routes.php'));
Route::useMiddleware('web')
->namespace($this->namespace)
->group(base_path('routes/web_routes.php'));
});
}
いくつかの特定のルートに同時にミドルウェアを適用する方法
ルート定義ファイルでグループを使用します。
Route::useMiddleware(['authUser','device.mobile'])->group(function () {
Route::get('/review/home', [App\Http\Controllers\HomeReviewController::class, 'mobileReview'])->name('review.home');
Route::get('/review/users', [App\Http\Controllers\Admin\UserDataController::class, 'mobileReviewGetInfo'])->name('review.users');
Route::get('/review/user/{id}', [App\Http\Controllers\Admin\UserDataController::class, 'mobileReviewGetById'])->name('review.user');
Route::get('/review/attendance', [App\Http\Controllers\Admin\AttendanceReportController::class,'fetchAttendance'])->name('review.attendance');
Route::get('/review/leaves', [App\Http\Controllers\Admin\VacationController::class,'reviewIndex'])->name('review.leaves');
Route::get('/review/profile', function (){return view('mobile.review.profile');})->name('review.profile');
});
単一のルートにミドルウェアを適用する方法
ルートファイル内で直接指定します。
Route::get('admin/settings', function () {
//
})->middleware('auth');
Route::get('/', function () {
//
})->middleware('initial', 'secondary');
use App\Http\Middleware\VerifyAge;
Route::get('admin/settings', function () {
//
})->middleware(VerifyAge::class);
特定のコントローラに関連するすべてのルートにミドルウェアを適用する方法
コントローラのコンストラクタ内で指定します。
class ProfileController extends Controller
{
/**
* 新しいコントローラインスタンスの生成
*
* @return void
*/
public function __construct()
{
$this->middleware('auth');
$this->middleware('logAccess')->only('index');
$this->middleware('checkSubscription')->except('store');
}
}