使用外部表的属性过滤雄辩的集合

时间:2019-08-05 05:19:08

标签: laravel eloquent

我有一个用户表,并且在通过“ status” =“ 1”的属性用其外表(user_details)过滤集合之后,我试图将数据返回到视图。

我研究并尝试了许多在线建议的方法,例如

$users = Users::whereHas('details_id', function($query) {
    $query->where('status', '1');
})->get()->paginate(15);

但是我得到

的错误
  

调用未定义的方法App \ Models \ User :: details_id()

下面是我的用户模型:-

public function user_details() 
{
    return $this->hasOne(UserDetails::class, "id");
}

1 个答案:

答案 0 :(得分:0)

使用haswhereHas时,应使用关系的名称(方法名称),而不要使用与它们相关的字段名称:

$users = Users::whereHas('user_details', function($query) {
    $query->where('status','1');
})->paginate(15);