我正在尝试使用以下代码获取用户名,但出现错误。请帮忙。错误是
“试图获取非对象的属性“名称”(查看:/var/www/html/laravel/imarker/resources/views/student/exams/available.blade.php)”
@foreach($availableExams as $exam)
@foreach($exam->user as $user)
{{($user->name)}}
@endforeach
@endforeach
考试模型
public function user(){
return $this->belongsTo('App\User');
}
用户模型
public function exams(){
return $this->hasMany('App\Exam');
}
控制器
public function availableExams(){
$users = User::all();
$availableExams = Exam::all();
return
view('student/exams/available',compact('availableExams', 'users'));
}
答案 0 :(得分:1)
每个Exam
有一个User
,那个User
有名字吗?试试这个:
@foreach($availableExams as $exam)
{{$exam->user->name }}
@endforeach
答案 1 :(得分:0)
知道了。一位用户不见了。使用if语句检查对象是否存在可以解决该问题。使用2个箭头可能会发现一个空的项目/对象,这会引起问题,因此需要使用condition子句。谢谢你们。
@foreach($availableExams as $exam)
{{$exam->user->name ?? 'No tutor found'}}
@endforeach
答案 2 :(得分:0)
更新刀片文件。
...
switchMap(ids => from(ids).pipe(
concatMap(id => forkJoin(
this.apiService.getName(id),
this.apiService.getAge(id),
)),
toArray(),
)),