Laravel 5.7 Laravel-admin リレーションを追加する(belongsToMany)

Laravel 5.7 Laravel-admin リレーションを追加する(belongsToMany)

こんばんは。のるぼるのんです。

前回はLaravel-adminでForm画面にbelongsToのリレーションを設定出来る、セレクトボックスを作成しました。

今回は多対多、belongsToManyのリレーションを設定出来るようにしましょう。

 

前回はproduct-categoryのリレーションを設定したので、product-tagのリレーションとします。

やることとしてはtag CRUDの作成、pivot tableの作成、リレーションの構築ですかね。まあぼちぼちやって行きましょう。

 

モデル、テーブル作成

migrationファイルを編集します。

create_tags_table.php

create_product_tag_table.php

make:model -m でmigrationファイルを作成すると、モデル名の複数系となります。ピボットテーブルには単数形を使用するので、ファイル、テーブル名をproduct_tagとしてください。

 

Tag CRUDを作成

コントローラー作成

作成するコントローラーは、Tagの分だけでOKです。ピボットテーブルは表示させませんので。

routes.phpに ルーティングを追記

 

タグを追加しました。

 

Product.php、ProcductController.phpを編集

Product.php

リレーションを追加

ProductController.php

formにmultipleSelectを追加します。

一覧表示がバグるのはわかっているので、gridも編集します。

実行してみます。

form、一覧画面も作成出来ました!

モデルにリレーションを記述するのみで、適切なピボットテーブルに保存、更新処理をしてくれるようですので、記述量が少なくてすみますね!

Laravel-adminはphpコード記述ベースで機能を追加出来るので、サクサク機能を追加できますね!

 

Laravelカテゴリの最新記事