如何使用多个Eloquent With()'
PortalPlaylistElement模型
class PortalPlaylistElement extends Model
{
public $primaryKey = 'code';
public $incrementing = false;
public $timestamps = false;
public function AirtimePlaylists()
{
return $this->hasOne('App\AirtimePlaylist','id','playlist_id');
}
}
AirtimePlaylistContent Model
class AirtimePlaylistContent extends Model
{
protected $table = 'cc_playlistcontents';
}
AirtimePlaylistModel
class AirtimePlaylist extends Model
{
protected $table = 'cc_playlist';
public function PortalPlaylistElements()
{
return $this->belongsTo('App\PortalPlaylistElement','playlist_id');
}
public function AirtimePlaylistContents()
{
return $this->hasMany('App\AirtimePlaylistContent','playlist_id');
}
}
我没有遇到任何问题:
AirtimePlaylist::with('AirtimePlaylistContents')->get());
或
PortalPlaylistElement::with('AirtimePlaylists')->get();
但我想在属于PortalPlaylistElement的AirtimePlaylist中获取所有AirtimePlaylistContents。
本质上,(伪代码)
PortalPlaylistElement::with('AirtimePlaylists')::with('AirtimePlaylistContents')->get();
答案 0 :(得分:18)
PortalPlaylistElement::with('AirtimePlaylists.AirtimePlaylistContents')->get();
答案 1 :(得分:4)
嵌套关系
with('relation1.relation2.relation3)->get(); // relation1 has relation2 relation2 has relation 3
不是嵌套关系
with('relation1','relation2','relation3')->get(); // you model has all relations
答案 2 :(得分:1)
如果有人需要,我想补充一下
with(['relation1.relation2-1','relation1.relation2-2'])->get(); // relation1 has relation2-1 and relation1 also has relation2-2