Laravel : 调用未定义的方法 Illuminate\\Database\\Query\\Builder

Laravel : Call to undefined method Illuminate\\Database\\Query\\Builder

在查询时使用 undefine 方法得到错误。只是我想从两个表查询中获取数据 look linke

  public static function userDetail($id){


    $result = User::whereHas('user_details', function ($query) {
        $query->where('user_details.user_id',$id);
    })->first();


    return $result ;
}

关系

在模型上 User 定义关系

public function userDetails()
{
   return $this->hasOne(UserDetails::class);
}

并且在 userDetails 模型中

public function user()
    {
        return $this->belongsTo(User::class);
    }

如果您不需要使用 static,您可以在 userDetails

上使用这个 $result 值
public function userDetail($id){

        $result = userDetails::where('user_id', '=', $id)->first();

        return $result ;
}

然后结果可以通过$value->user->{user 属性}

从vale获取用户的访问权限

只是改变

public static function userDetail($id){


$result = User::whereHas('user_details', function ($query) use($id) {
    $query->where('user_id',$id);
})->first();


return $result ;

}