現在端末管理のCMSの設計をあーでもない、こーでもないと作成しています。
deviesテーブル
中間テーブル(device_rental_hists)
rental_histsテーブル
というテーブルのリレーションができずはまっています。
devicesテーブル
device_rental(中間テーブル)
rental_histsテーブル
Device.php モデル
/** * retnal_histsテーブルとのリレーション */ public function rental_hists(){ return $this->belongsToMany('App\Models\RentalHist','device_rental','lend_id','lend_id'); }
RentalHist.php モデル
public function devices() { return $this->belongsToMany('App\Models\Device','device_rental','device_id','device_id'); }
tinkerで確認しているのですが、値が付いてきません。
>>> App\Models\RentalHist::find('RRRRR1')->devices; => Illuminate\Database\Eloquent\Collection {#4281 all: [], }
もちろん、idで検索すれば値は取得できます
>>> App\Models\RentalHist::find('RRRRR1'); => App\Models\RentalHist {#4275 lend_id: "RRRRR1", client: "DDD1", personnel: "HHH1", user: 1, all_returned: 0, checkout_at: "2020-12-23 19:40:32", lending_extension_at: "2020-12-23 19:40:32", return_at: null, note: "test1だ", created_at: "2020-12-23 19:40:32", modified_at: "2020-12-23 19:40:32", soft_deleted_at: null, }
次のようにtinkerを記入するとsql分はこのようになっています
>>> App\Models\RentalHist::find('RRRRR1')->devices()->toSql(); => "select * from `devices` inner join `device_rental` on `devices`.`device_id` = `device_rental`.`device_id` where `device_rental`.`device_id` = ?"
何かお気づきになることはありますでしょうか?
よろしくお願いいたします。
※カラム命名などのアドバイスもあったら加えて頂けると嬉しいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。