laravel-adminで多対多(belongsToMany)を使う。multiple-selectのエラーはモデルのリレーションを見直せ!

パン田@現役エンジニア
こんにちは!パン田です。
今回はlaravel-adminの多対多(many-to-many)でよく陥るエラーの見直しポイントを。

基本的な多対多の実装の仕方は、他のブログが優秀なので基本の説明は譲ります。

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

が、僕はこれではうまくいきませんでした。
DBのエラーが出るのですよ。。

そんな時の見直しポイントはこの2点。

  • モデルのbelognsToManyの第二引数に、中間テーブルのテーブル名をつける
  • multipleSelectの引数は複数形にする

 

まずは完成のソースコードから。

laravel-adminのコントローラ

 

モデルファイル

 

やっぱり公式リファレンス見ないとダメですね。

個人ブログは素晴らしいんですけど、それを信じ切ってしまうとエラーを解決するのに余計、時間がかかっちゃう。

ということで公式リファレンスはこちらです。

https://laravel-admin.org/docs/#/en/model-form-fields?id=multiple-select

 

githubのソースコードはこちら
https://github.com/z-song/laravel-admin/blob/master/src/Form/Field/MultipleSelect.php

継承の親のソース。optionsとかはこっち。
https://github.com/z-song/laravel-admin/blob/master/src/Form/Field/Select.php

あと、エンジニアの年収を上げる方法やフリーの営業法をツイートしてるんでフォローしてくださいっ!!

 

>> フォローは↓からですよ!