当我的模型中存在兴趣方法时,我在查询中遇到以下错误。
调用未定义的方法Illuminate \ Database \ Query \ Builder :: interest()
控制器:
public function index() {
$user_id = auth()->user()->id;
$user = User::find($user_id);
$interests = Space::where('user_id', $user_id)->interest()->get();
return view('dashboard')->with('space', $user->space)->with('interest', $interests->space);
}
空间模型:
public function user(){
return $this->belongsTo(User::class);
}
public function interest(){
return $this->hasMany(Interest::class);
}
兴趣模型:
public function user(){
return $this->belongsTo(User::class);
}
public function interest(){
return $this->belongsTo(Space::class);
}
答案 0 :(得分:0)
尝试一下,
首先,您可以通过此auth()->id()
对于控制器中的关系
$interests = Space::with(['interest'])->where('user_id', $user_id)->get();
希望这会有所帮助:)
答案 1 :(得分:0)
Space::where('user_id', $user_id)->interest()->get();
该行显示错误,因为查询构建器或模型范围中不存在方法interest
但是我认为您有些不满意之处
在集合中加载关系
Space::where('user_id', $user_id)->with('interest')->get();
会工作
还有
$singleFind = Space::findOrFail($yourId)->interest();
将按预期工作
希望清楚