自己紹介
名前:masato sibai
プログラミングの勉強で参考になった事や備忘録として記事を書いています
カテゴリー

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

ホームに戻る