このページにはプロモーションが含まれています。
はじめに
こんにちは!Webアプリ開発に向けて勉強中のはなまると申します。
私は『Laravelの教科書バージョン10』(加藤じゅんこ著・ソシム)を使って勉強しています。
Laravelのバージョンによって、ちがいがあり、バージョンの変更に合わせて
ミドルウェアを設定してみたのでご参考になればと思い、記事にしました。
学習に使用した書籍と
【Laravelの教科書】Laravel11 対応サポートガイドはこちらよりご覧ください。
【Laravelの教科書】Laravel11 対応サポートガイド
バージョンの確認方法
Laravelのバージョンは以下のコマンドで確認できます。
Sail環境の場合
sail php artisan --version
または
sail php artisan -V
Sail環境ではない場合
php artisan --version
または
php artisan -V
本稿執筆時点でのバージョンは、Laravel Framework 11.7.0でした。
ミドルウェアの設定
Webアプリにログインしていない時に、welcomeページにアクセスすると
ログインページにリダイレクトされるようにしたい
教科書の中ではKernel.phpで設定することになっていますが、
バージョン11では、該当のフォルダやファイルがない!
バージョンが異なるためバージョン11に合わせる必要があります。
そこで【Laravelの教科書】Laravel11 対応サポートガイドや
他のサイトを調べてコードを追加で書いてみました。
bootstrap/app.php
<?php
use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;
use Illuminate\Auth\Middleware\Authenticate; //追加
return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__ . '/../routes/web.php',
commands: __DIR__ . '/../routes/console.php',
health: '/up',
)
->withMiddleware(function (Middleware $middleware) {
$middleware->alias([
'auth' => Authenticate::class
]);
}) //追加
->withExceptions(function (Exceptions $exceptions) {
//
})->create();
web.php
<?php
use App\Http\Controllers\ProfileController;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\TestController;
use App\Http\Controllers\PostController;
Route::get('/test', [TestController::class, 'test'])->name('test');
Route::get('/', function () {
return view('welcome');
})->middleware('auth'); //追加
Route::get('/dashboard', function () {
return view('dashboard');
})->middleware(['auth', 'verified'])->name('dashboard');
Route::middleware('auth')->group(function () {
Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit');
Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update');
Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy');
});
Route::get('post/create', [PostController::class, 'create']);
Route::post('post', [PostController::class, 'store'])
->name('post.store');
Route::get('post', [PostController::class, 'index']);
require __DIR__ . '/auth.php';
ログイン画面へリダイレクト成功です!
おわりに
今回はLaravelバージョン11でミドルウェアの設定をしました。
学習に使用した教科書は、わかりやすくかみ砕いた解説と
豊富なイラストで、親しみやすい一冊です。
- 初心者やフレームワークがはじめての方
- じっくり理解しながら取り組みたい方にもオススメです!
最後までお読みいただきありがとうございました!
コメント