Php 在Laravel查询中使用with子句后不能使用where子句
我正在使用laravel中的with和where子句编写一个查询Php 在Laravel查询中使用with子句后不能使用where子句,php,laravel,eloquent,Php,Laravel,Eloquent,我正在使用laravel中的with和where子句编写一个查询 $users = User::query()->with('roles')->where('name', '!=', 'customer')->get(); return $users; 但where子句在这里不起作用。不排除客户。我提供了查询结果的快照 我想你需要: use Illuminate\Database\Eloquent\Builder; $users = User::query()
$users = User::query()->with('roles')->where('name', '!=', 'customer')->get();
return $users;
但where子句在这里不起作用。不排除客户。我提供了查询结果的快照
我想你需要:
use Illuminate\Database\Eloquent\Builder;
$users = User::query()
->with('roles')
->whereHas('roles', function (Builder $query) {
$query->where('name', '!=', 'customer');
})
->get();
return $users;
我想你需要
use Illuminate\Database\Eloquent\Builder;
$users = User::query()
->with('roles')
->whereHas('roles', function (Builder $query) {
$query->where('name', '!=', 'customer');
})
->get();
return $users;
我想您正在尝试在基本查询中过滤关系数据。 试着这样做:
$users=User::query()->with([
“角色”=>功能($q){
$q->where('name','!=','customer');
}])
->get();
返回$users;
我想您正在尝试在基本查询中过滤关系数据。 试着这样做:
$users=User::query()->with([
“角色”=>功能($q){
$q->where('name','!=','customer');
}])
->get();
返回$users;
where()
子句在此处用于用户
表,而不是角色
表where
仅用于用户查询,而不是角色查询。如果希望在角色查询中使用它,则需要将其作为闭包传递where()
子句在这里用于用户
表,而不是角色
表where
仅用于用户查询,而不是角色查询。如果希望在角色查询中使用它,则需要将其作为闭包传递。这不包括客户。但是,它返回所有没有滚动客户的用户。这不包括客户。但是,它返回所有没有roll customer的用户。一个问题是,为什么在查询之前使用Builder。无需声明生成器,它也可以正常工作@sta@AbhijitMondalAbhi这叫做类型暗示。类/接口的对象是强制的,因此不能提供其他对象类型。安全措施。另外,query()->
也可以跳过。一个问题是为什么在查询之前使用生成器。无需声明生成器,它也可以正常工作@sta@AbhijitMondalAbhi这叫做类型暗示。类/接口的对象是强制的,因此不能提供其他对象类型。安全措施。此外,还可以跳过query()->
。