2016-08-04 2 views
1

사용자 모델에서 belongsToMany()을 사용하여 자체 참조 관계를 모델링했습니다. 사용자는 서로 에이전트 또는 판매자가 될 수 있습니다. 따라서 우리는 한정자입니다. seller()agents()Laravel에서 관계 가져 오기에서 Query Builder 객체 가져 오기

이제 우리는 표에 대한 쿼리가 필요한 https://github.com/Nayjest/Grids을 사용하고 있습니다.

예를 들어 판매자의 에이전트를 표시하려는 그리드에서.

현재 우리는이를 위해 수작업으로 작성한 쿼리를 사용하고 있습니다.하지만 모델에서 로직을 가져 오려고합니다.

그래서 우리가 필요한 것은

$seller = Auth::user(); // or any other instance of User 
$seller->agents 

우리는 운없이

$query = $seller->newQuery()->where('laravel_reserved_1.id', '=', $seller->id); 
return $user->agents()->getRelationQuery($query, $query); 

을 시도 가져올 때 실행 (쿼리 빌더 오브젝트 등) 쿼리입니다. > getQuery()는 우리가

SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'id' in order clause is ambiguous 
(SQL: select * from `users` inner join `user_connections` on 
`users`.`id` = `user_connections`.`user_id` 
where `user_connections`.`related_user_id` = 2 and   
`user_connections`.`type` = agent order by `id` asc 
limit 15 offset 0) 
+0

변수'$ seller'는 무엇입니까? – TheFallen

+0

@TheFallen A 사용자 인스턴스 – Alex

+0

그냥'$ user-> agents() -> getQuery()'가 아닌가? – alepeino

답변

0

을받을 우리가 열을 "했다 단지

$user->agents()->getQuery() 

입니다 밝혀 - $ 판매자 -> 에이전트를() 시도

편집

id "를 사용하여 나중에 모호한 쿼리를 유도했습니다.