Laravel的关系

时间:2013-01-11 16:22:15

标签: php orm relationship laravel eloquent

我有两个表,GalleriesGallery_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”可能是答案(我不知道那是什么)?

2 个答案:

答案 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');