2017-12-14 4 views
0

私は4つのテーブルを持っています。Laravel:どのように私は雄弁またはクエリビルダ</p> <p>にこのSQL文に変換することができますどのように私は、このSQLステートメントは雄弁またはクエリビルダに変換することができます

Jobs 
Stores 
Users 
Store_User 

各ストアはhasManyジョブを持ち、ストアとユーザーはstore_userテーブルによってManyToMany関係を持ちます。ユーザーが割り当てられている店舗のすべてのジョブを取得したい

ユーザーはstore_userテーブルを介して1つ以上のストアに割り当てられます。また、複数のジョブがストアに所属できます。

私は$user->jobsや、割り当てられた店舗に基づいてユーザーに属するジョブのリストを取得できるものを使用できる必要があります。

ここにSQL文があります。私はPDOで使用していました。

SELECT * FROM jobs 
     INNER JOIN store_user 
     INNER JOIN stores 
     WHERE stores.id = store_user.store_id 
     AND store_user.store_id = jobs.store_id 
     AND store_user.user_id = 2 
+0

あなたはこれまでに何を試しましたか?エンティティはどのように見えますか? –

+0

こんにちは@WilliamPerron、私はmidnightcowboycoder.comを使用して私のSqlステートメントをLaravelに変換しようとしました。 DB :: select(*) - > from(store_user) - > from(stores) - >ここで(stores.id、=、store_user.store_id) - > where(store_user.store_id、 、jobs.store_id) - >(store_user.user_id、=、2) - > get(); SQLSTATE [42000]:構文エラーまたはアクセス違反:1065クエリが空でした(SQL:) – lotsonj

+0

@Iotsonjこのコードを本文に追加する必要があります。質問ではなく、コメントとして。 –

答えて

0

これを試すことができます。

$jobs = DB::table('jobs') 
      ->join('store_user','store_user.store_id','=','jobs.store_id') 
      ->join('stores','stores.id','=','store_user.store_id') 
      ->where('store_user.user_id', '=' ,2) 
      ->get(); 
関連する問題