当我在mysql的where子句中使用backticks时,得到了1054-unknown列错误
`roles`.`id`
但它可以和
'roles.id'
你知道为什么,怎么解决吗?我需要使用backticks来使用laravel雄辩的查询生成器。
select *
from `users` inner join `role_user` on `users`.`id` = `role_user`.`user_id`
where `roles`.`id` = `role_user`.`role_id` and (`users`.`id` = 8) and `users`.`id` = 8
laravel-雄辩的提问:
Policy::whereHas('role.users', function ($query) use ($user_id) {
$query->where([
'users.id' => $user_id
])->get();
});
1条答案
按热度按时间ih99xse11#
正如@barmar所说,我的查询缺少一个
roles
中的表FROM
或者JOIN
条款。因为我有这个错误,因为查询是由laravel-eloquent生成的,所以我将发布我的解决方案以供将来参考。问题是因为我把get放错了查询生成器的内部
whereHas
而不是查询生成器的最外层。