我在App \ User Model文件中有以下方法
Public function buildings(){
return Building::whereHas('area', function ($q) {
$q->whereHas('users', function ($q) {
$q->where('users.id', auth()->id());
});
})->get();
}
当我尝试在View文件中获取用户建筑物时,我收到此错误:
@foreach (Auth::user()->buildings as $b)
{{$b->name}}
@endforeach
App \ User :: buildings必须返回关系实例。 (查看:C:\ xampp \ htdocs \ hse \ resources \ views \ observation \ form_observation.blade.php)
我尝试了web.php中的代码,它的工作意味着关系设置是完美的,但我希望它在用户模型中工作
Route::get('/', function () {
return App\Building::whereHas('area', function ($q) {
$q->whereHas('users', function ($q){
$q->where('users.id',11);
});
})->get();
});
答案 0 :(得分:1)
在你的视图文件中,你应该调用buildings()函数以返回一个Relation实例(即返回一个关系对象)
更改
@foreach (Auth::user()->buildings as $b)
{{$b->name}}
@endforeach
到
@foreach (Auth::user()->buildings() as $b)
{{$b->name}}
@endforeach