スポンサーリンク
みなさん、こんにちは。どんぶラッコです。
今月発表されたLaravel8を触っています。エンジニア仲間と話していますが、かなり便利になっていますね!
- Modelファイルを生成すると
App/Models
内に配置されるようになった - factoryの記法がクラス記法に変わった
など、大幅なアップデート部分をご紹介しましたが、この他にも「あ、ここ変わったんだ!」と思った部分があったのでご紹介したいと思います!
どんぶラッコ
中には、Laravel7の時点で実装されていた記法もありますが、、便利なのでご紹介しちゃいますね←
スポンサーリンク
Seeder に 名前空間が追加された
Factoryがクラス化されたことは先ほどの記事で述べた通りですが、それと同時に Factory, Seederに名前空間を付与しないと動作しなくなりました。
どんぶラッコ
Laravel8 で php artisan make:seeder … で作れば書いてあるので心配ないでね!
どんぶラッコ
この影響があるのは、Laravel7以前に書いたファイルをLaravel8に持ってくる場合です。
旧バージョンからファイルを持ってくる場合、それぞれに名前空間を付与することを忘れないでください!
名無しさん
Factoryの場合はクラス記法に直さなきゃいけないから全て書き直しだね
どんぶラッコ
昔のfactoryを使えるパッケージもあるからそっちの利用も検討してみましょう!↓のコマンドでインストールできますよ
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"
で指定する方法が削除されています。

どんぶラッコ
確かに文字列の指定って違和感ありましたもんね。納得です。
いかがだったでしょうか?みなさんの気づきも教えてください!
追記:そのほかのアップデート情報もまとめました!
スポンサーリンク
スポンサーリンク