使用 Eloquent ORM 通过另一个 table 获取 table 记录
get table records through another table with Eloquent ORM
我有三个表和两个数据透视表!
艺术家
* id(主要)
...
music_artists
* id(主要)
* music_id(外键)
* artist_id(外键)
音乐
id(主要)
...
album_musics
id(主要)
music_id(外键)
album_id(外键)
...
相册
id(主要)
...
我的问题是如何访问 laravel eloquent 专辑的艺术家?
本案例没有原生关系。
我创建了 HasManyThrough
关系并支持 BelongsToMany
:Repository on GitHub
安装完成后可以这样使用:
class Album extends Model {
use \Staudenmeir\EloquentHasManyDeep\HasRelationships;
public function artists() {
return $this->hasManyDeep(
Artist::class,
['album_musics', Music::class, 'music_artists']
);
}
}
我有三个表和两个数据透视表!
艺术家
* id(主要)
...
music_artists
* id(主要)
* music_id(外键)
* artist_id(外键)
音乐
id(主要)
...
album_musics
id(主要)
music_id(外键)
album_id(外键)
...
相册
id(主要)
...
我的问题是如何访问 laravel eloquent 专辑的艺术家?
本案例没有原生关系。
我创建了 HasManyThrough
关系并支持 BelongsToMany
:Repository on GitHub
安装完成后可以这样使用:
class Album extends Model {
use \Staudenmeir\EloquentHasManyDeep\HasRelationships;
public function artists() {
return $this->hasManyDeep(
Artist::class,
['album_musics', Music::class, 'music_artists']
);
}
}