2013-01-11 94 views
0

我有兩個表,GalleriesGallery_items。 在Galleries我保存作者是誰的信息。在Gallery_items我保存該圖庫包含的每張圖片。Laravel中的關係

現在我想獲取的第一張圖片中每個畫廊其中標題是蒙娜麗莎並在作者是達芬奇

我測試:

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

由於@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

這應該工作:

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

否,因爲'Gallery_items'沒有名爲'author'的列。這是'畫廊'有那一欄。 – Sawny