0

2つのテーブルがGalleriesありGallery_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');
    }
}

私がどのようにすべきか考えていますか?これは1つのクエリでも可能ですか?「ConstrainingEagerLoading」が答えかもしれません(それが何であるかわかりません)?

4

2 に答える 2

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');
于 2013-01-11T18:16:47.153 に答える
1

これは機能するはずです:

Gallery_items->group_by('gallery_id')->where_title_and_author('Mona Lisa', 'Leonardo da Vinci');
于 2013-01-11T18:00:07.133 に答える