Php 如何根据多个whereHas条件获得用户
我正在尝试根据多个whereHas条件获取用户。首先,我获取具有特定角色的用户,然后,我希望使用其他whereHas条件对该用户进行排序。我尝试了一些代码片段,但是我得到了所有具有不同角色的用户 我的模型Php 如何根据多个whereHas条件获得用户,php,mysql,laravel,Php,Mysql,Laravel,我正在尝试根据多个whereHas条件获取用户。首先,我获取具有特定角色的用户,然后,我希望使用其他whereHas条件对该用户进行排序。我尝试了一些代码片段,但是我得到了所有具有不同角色的用户 我的模型 public function document() { return $this->hasOne(UserDocument::class,'user_id'); } public function portfolios() {
public function document()
{
return $this->hasOne(UserDocument::class,'user_id');
}
public function portfolios()
{
return $this->hasMany(Portfolio::class,'user_id');
}
控制器
public function index()
{
$data = User::whereHas("roles", function($q)
{
$q->where("name", "Seller");
})
->whereHas('portfolios',function($q){
$q->where('status','Pending');
})
->orWhereHas('document',function($s){
$s->where('status','Pending');
})
->get();
dd($data);
return view('admin.pendingapproval.index');
}
我不明白怎么做。请帮帮我
谢谢您在where has中使用了“or”,因此如果用户具有卖家角色,您将获得该用户 或其拥有投资组合状态为挂起或其拥有状态为挂起的文档 你应该像这样做:
$data = User::whereHas("roles", function ($q) {
$q->where("name", "Seller");
})
->where(function ($query) {
$query->whereHas('portfolios', function ($q) {
$q->where('status', 'Pending');
})->orWhereHas('document', function ($s) {
$s->where('status', 'Pending');
});
})->get();
现在,您可以获得角色为“卖方”的用户
和他有未决投资组合或未决文件