2017-12-14 14 views
0

나는 4 개 테이블이있다;Laravel은 : 어떻게 설득력 또는 쿼리 빌더에이 SQL 문을 변환 할 수 있습니다 나는 웅변이나 쿼리 빌더</p> <p>이 SQL 문을 변환 할 수 있습니다 어떻게

Jobs 
Stores 
Users 
Store_User 

각 저장소에는 hasMany 작업이 있고 store 및 user에는 store_user 테이블을 통해 ManyToMany 관계가 있습니다. 사용자가 할당 된 상점의 모든 작업을 가져 오려고합니다.

사용자는 store_user 테이블을 통해 하나 이상의 상점에 할당됩니다. 여러 작업이 상점에 속할 수 있습니다.

내가 할당 된 상점을 기반으로 사용자에게 속한 작업 목록을 가져올 수있는 도구 또는 $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을 사용하여 Laravel 's에 내 Sql 선언문을 변환하려고 시도했습니다. from (stores_user) -> from (stores) -> 여기서 (stores.id, =, store_user.store_id) -> 여기서 (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();