我有两个表,Galleries
和Gallery_items
。
在Galleries
中,我保存了作者的信息。在Gallery_items
中,我保存了图库中包含的每张图片。
现在我想获取每个图库中的第一张图片其中标题是mona lisa ,其中作者是Leonardo达芬奇。
我测试过:
Gallery_items::group_by('gallery_id')->where('title', '=', 'mona lisa')->gallery()->where('author', '=', 'Leonardo da Vinci');
但它不起作用。我收到错误Method [gallery] is not defined on the Query class.
。
但我已将gallery()添加到模型中。
class Gallery_items extends Eloquent
{
public function gallery()
{
return $this->belongs_to('gallery');
}
}
知道我应该怎么做吗? 一个查询甚至可以实现这一点吗? “Constraining Eager Loading”可能是答案(我不知道那是什么)?
答案 0 :(得分:2)
感谢@AndHeiberg我开始从其他角度看问题,现在我使用JOIN
语句解决了问题。
Gallery_items::join('gallery', 'Gallery_items.gallery_id', '=', 'gallery.id'))->group_by('gallery_id')->where_title_and_author('Mona Lisa', 'Leonardo da Vinci');
答案 1 :(得分:1)
这应该有效:
Gallery_items->group_by('gallery_id')->where_title_and_author('Mona Lisa', 'Leonardo da Vinci');