我有3张桌子:
播放列表
id | secret | [...]
1 xjdjd
2 dzfze
playlists_songs
id | playlist_id | song_id | [...]
1 1 83
2 1 32
歌曲
id | name | [...]
22
我想要获取播放列表中的所有歌曲。
现在我的代码看起来像:
<?php
class Playlist extends Eloquent {
public function playlistSongs()
{
return $this->hasMany('PlaylistSong');
}
<?php
class PlaylistSong extends Eloquent {
public function playlist()
{
return $this->belongsTo('Playlist');
}
}
现在我可以像这样获取播放列表中的所有“播放列表歌曲”:
// Check if the playlist exists
$playlist = Playlist::where('secret', $secret)->firstOrFail();
// We want fetch all songs of a playlist
$playlistSongs = $playlist->playlistSongs()->get();
但我不知道如何获取所有歌曲的名字......
祝你有个美好的一天:)
答案 0 :(得分:1)
您所描述的是many-to-many
关系。在Laravel中,它被描述为:
class Playlist extends Eloquent {
public function songs()
{
return $this->belongsToMany('song', 'playlists_songs', 'playlist_id', 'song_id');
}
}
现在,您可以通过以下网址获取播放列表中的所有歌曲:
$playlist->songs