我们在用户模型中使用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)
原来它只是
$user->agents()->getQuery()
我们在网格中有一个列"id",这导致了稍后过程中的模糊查询。