laravel リレーションの方法 1対多
laravelでデーターベースをリレーションする方法
リレーションの種類
1対1
1対多
多対多などある
環境
laravel 8.x
今回はテストデータを大量に作成する方法で作成したmonstersテーブルを修正して再利用。
新たにherosテーブルを作成して1対多のリレーションを組んでみます。
1.herosテーブルを作成
php artisan make:model hero -m
2.herosテーブルのカラムの型や属性を決めていく(親テーブル)
3.monstersテーブルを修正する。(子テーブル)
子テーブルに外部キーを設定する。今回はhero_idが外部キー。
確認したらできたら
php artisan migrate
※migrationはマイグレーションファイルが作成された順番で実行する様子。
親テーブルのマイグレーション→子テーブルのマイグレーションの順になるように気を付ける。
4.herosテーブルにデータを挿入する。(今回はfactoryではなくseederを利用)
php artisan make:seed HerosSeeder
5.monstersテーブルにデーターを挿入する(今回は前回利用してfactoryを修正して利用)
6.DatabaseSeederファイルで順番に気を付けて実行
php artisan db:seed
マイグレーション時と同じように親テーブルのシーディンから実行できているように。
7.データー作成作成されているか確認
heroesテーブル
monstersテーブル
8.heroモデルで1対多のリレーションを作る
9.リレーションをできるか確認
heroのID1
以上でlaravelの1対多のリレーションの方法でした。
作成日:2021-03-06
更新日:2021-03-06