我试图在Laravel 4中创建一个表单选择框。
共有3种模式:用户,乐队和专辑。
我建立了雄辩的关系,工作如下:
如何创建数组$ albums:
$userid = Auth::user()->id;
$albums = Album::where(the band the album belongs to has a user with id = $userid);
我似乎无法解决这个问题。
我是否应该在相册和用户之间创建多对多关系,这样我就可以构建一个更简单的查询,例如$ albums = $ user-> albums;
我不希望创建另一个多对多关系,因为这是一个全新的数据库管理层,可能会让事情变得混乱。
感谢您的协助! 〜罗斯
答案 0 :(得分:1)
试试这个:
$user = Auth::user();
$albums = new \Illuminate\Database\Eloquent\Collection;
foreach($user->bands as $band){
$albums = $albums->merge($band->albums);
}
答案 1 :(得分:0)
lukasgeiter几乎有正确的答案,唯一的问题是有多个乐队它抛出一个错误。我通过在foreach循环中合并$ band->相册来修复它,然后在循环完成时创建列表数组。
$albumcheck = new \Illuminate\Database\Eloquent\Collection;
foreach($user->bands as $band){
$albumcheck = $albumcheck->merge($band->albums);
}
$albums = $albumcheck->lists('title', 'id');