获取查询构建器对象后面在Laravel中获取关系

时间:2016-08-04 13:03:22

标签: php laravel eloquent

我们使用belongsToMany()在用户模型中建模了自引用关系。用户可以是彼此的代理商或销售商 - 因此我们定义seller()agents()

现在我们正在使用需要查询网格的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);
没有运气。

修改

尝试$ seller-> agents() - > 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) 

1 个答案:

答案 0 :(得分:0)

原来只是

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

我们有一个专栏" id"在网格中导致稍后在该过程中的模糊查询。