2015-06-30 63 views
0

我得到這個查詢:Laravel。洋洋灑灑查詢

$users = DB::table('users')->whereExists(function($query) 
     { 
      $query->select(DB::raw(1)) 
       ->from('galleries') 
       ->whereRaw('galleries.user_id = users.id'); 
     })->get(); 

此查詢選擇誰擁有畫廊的所有用戶。問題是我現在無法使用雄辯的發現。每當我嘗試循環是這樣的:

@foreach ($user->gallery as $gallery) 
    {{$gallery->name}}  
@endforeach 

我得到錯誤:

Undefined property: stdClass::$gallery 

它發生與所有其他表。我在這裏做錯了什麼?我的realationships被定義,他們工作得很好,我只在這個查詢中遇到問題。謝謝。

編輯
因爲它不是雄辯的查詢,你能告訴我怎麼例子寫的查詢,與雄辯幾張桌子。例如,我需要所有用戶誰都有自己的狀態例如表批准

+2

您不是從'User'模型中選擇,而是從'DB :: table('users')'中選擇'。 –

+1

你在這裏沒有使用雄辯,你使用流利,2種不同的東西。如果'users'和'galeries'有關係,你就不需要這樣做。 – Andrew

+0

謝謝。那麼你能告訴我一個例子,我如何寫2張表的雄辯查詢?因爲我只需要那些有畫廊的用戶?這只是一個例子,在實時項目中,我必須選擇所有用戶,其中畫廊的狀態已被批准。 –

回答

3

首先,確定在User類的關係,就像這樣:

class User { 
    // Determine relation to Example table 
    public function examples() { 
     return $this->hasMany('Example', 'user_id', 'id'); // second parameter is the foreign key 
    } 
} 

然後查詢:

User::whereHas('examples', function($query) { 
    $query->where('status','approved'); 
})->get();