亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何返回數據槽表拉拉維爾

如何返回數據槽表拉拉維爾

PHP
泛舟湖上清波郎朗 2022-09-24 16:46:25
您好,我們有三個實體,樂器,作曲家和曲目。樂器和作曲家與多對多的關系有關。當您單擊樂器(id)時,我想顯示為該樂器編寫一些“曲目”的作曲家的數量。我使用這個代碼,但我認為這不是最干凈的原因,而且我沒有很好地理解Eloquent和他的方法,你能幫助我嗎?p.s它的工作原理,但我沒有填滿好。我的儀器控制器:public function getInstrument( Instrument $instrument){$id_compositori= ComposerInstrument::where('instrument_id', $instrument->id)->pluck('composer_id')->toArray();$compositori = Composer::whereIn('id',$id_compositori)->get();return  view('instrumentcomposer',compact(['id_compositori','instrument','compositori']));}我的觀點:@foreach($compositori as $composer)<div class="col-lg-3 col-md-4 col-6">  <img class="img-fluid img-thumbnail" src=" https://i.picsum.photos/id/619/200/300.jpg?grayscale" alt=""><h2>Wrote by  {{ $composer->name }} </h2>   </div>@endforeach謝謝編輯軌道模型class Track extends Model{   public function instrument()   {       return $this->belongsTo(Instrument::class,'instrument_id','id');   }   public function composer()   {       return $this->belongsTo(Composer::class,'composer_id','id');   }}儀器型號class Instrument extends Model{   public function composers1()   {       return $this->belongstoMany(ComposerInstrument::class);   }   public function tracks()   {       return $this->hasMany(Track::class);   }   public function composers()   {       return $this->hasMany(Composer::class);   }作曲家模型class Composer extends Model{   public function instruments()   {       return $this->belongstoMany(ComposerInstrument::class);   }   public function tracks()   {       return $this->hasMany(Track::class);   }   public function instruments2()   {       return $this->hasMany(Instrument::class);   }   }數據透視表模型class ComposerInstrument extends Model{   protected $table = 'composer_instrument';   protected $fillable = ['composer_id','instrument_id'];   public function instruments()   {       return $this->hasMany(Instrument::class);   }   public function composers()   {       return $this->hasMany(Composer::class);   }}對不起,我很新手
查看完整描述

1 回答

?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

所屬的第一個參數 ToMany() 應引用它與透視模型具有這種關系的模型。


將模型中的方法更改為:composers()Instrument


public function composers()

{

    return $this->belongsToMany(Composer::class);

}

然后,您的控制器代碼可以是:


public function getInstrument(Instrument $instrument)

{

    return  view('instrumentcomposer', compact('instrument'));

}

最后,你的邊欄選項卡文件將是:


@foreach($instrument->composers as $composer)

    <div class="col-lg-3 col-md-4 col-6">

        <img class="img-fluid img-thumbnail" src="https://i.picsum.photos/id/619/200/300.jpg?grayscale" alt="">


        <h2>Wrote by  {{ $composer->name }} </h2>

   </div>

@endforeach


查看完整回答
反對 回復 2022-09-24
  • 1 回答
  • 0 關注
  • 70 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號