みなさん、こんにちは。どんぶラッコです。
今月発表されたLaravel8を触っています。エンジニア仲間と話していますが、かなり便利になっていますね!
- Modelファイルを生成すると
App/Models
内に配置されるようになった - factoryの記法がクラス記法に変わった
など、大幅なアップデート部分をご紹介しましたが、この他にも「あ、ここ変わったんだ!」と思った部分があったのでご紹介したいと思います!
Seeder に 名前空間が追加された
Factoryがクラス化されたことは先ほどの記事で述べた通りですが、それと同時に Factory, Seederに名前空間を付与しないと動作しなくなりました。
旧バージョンからファイルを持ってくる場合、それぞれに名前空間を付与することを忘れないでください!
composer require laravel/legacy-factories
web.php
内Route
の書き方
Controllerでルートを指定する場合、今まではこのように文字列で指定していたと思います。
Route::get('/dashboard', 'DashboardController@index')->name('dashboard');
でもそれだと動きません。
Laravel8ではこのような書き方に変更になりました。
use App\Http\Controllers\DashboardController;
Route::get('/dashboard', [DashboardController::class, 'index'])->name('dashboard');
実はこの記法はLaravel7の時点でも紹介されていました。
それがLaravel8になって "HogeController@index"
で指定する方法が削除されています。
いかがだったでしょうか?みなさんの気づきも教えてください!
追記:そのほかのアップデート情報もまとめました!