【问题标题】:Relationships in LaravelLaravel 中的关系
【发布时间】:2012-12-26 06:42:13
【问题描述】:

我有两张桌子,GalleriesGallery_items。 在Galleries 我保存了作者是谁等信息。在Gallery_items 中,我保存图库包含的每张图片。

现在我想获取每个画廊中的第一张图片在哪里标题是蒙娜丽莎在哪里作者是莱昂纳多达芬奇

我测试过:

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”可能是答案吗(我不明白那是什么)?

【问题讨论】:

    标签: php orm relationship laravel eloquent


    【解决方案1】:

    感谢@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');
    

    【讨论】:

      【解决方案2】:

      这应该可行:

      Gallery_items->group_by('gallery_id')->where_title_and_author('Mona Lisa', 'Leonardo da Vinci');
      

      【讨论】:

      • 否,因为Gallery_items 没有名为author 的列。具有该列的是Gallery
      猜你喜欢
      • 2020-02-22
      • 2015-11-13
      • 2016-02-12
      • 1970-01-01
      • 2020-08-20
      • 2018-12-21
      • 2019-05-26
      • 2019-09-05
      相关资源
      最近更新 更多