Я пытаюсь получить имя пользователя, используя следующий код, но получаю сообщение об ошибке. пожалуйста помоги. Ошибка
«Попытка получить имя свойства не-объекта (Просмотр: /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'));
}
да, потому что пользовательский метод имеет отношения, поэтому он возвращает только одну запись, попробуйте dd $exam->user в поле зрения, и вы получите представление.
зачем использовать два foreach? Если каждый экзамен принадлежит одному пользователю, вам нужен один foreach в поле зрения..{{$exam->user->name }}






У каждого Exam есть один User, и у этого User есть имя? Попробуй это:
@foreach($availableExams as $exam)
{{$exam->user->name }}
@endforeach
это безумие. когда я {{dd($exam->user->name) }} я получаю имя, но как только я использую {{$exam->user->name}} я получаю ту же ошибку Попытка получить имя свойства не-объекта (Просмотр:...
@TimothyMach, когда вы используете dd($exam->user->name), что такое дамп? скопируйте, пожалуйста
@mohammadHosseini Я получаю "Mach Turor" - это то, что я хочу.
Что-то фанковое. Можете ли вы попробовать {{ $exam->user()->first()->name }}
@ Андерс, проблема заключалась в проверке существования пользователя. ` {{$экзамен->пользователь->имя ?? 'Репетитор не найден'}} ` Вот как я решил эту проблему. Большое спасибо. ты дал мне подсказку
Понятно. Отсутствовал один пользователь. использование оператора if, чтобы проверить, существует ли объект, решает его. Использование двух стрелок может привести к обнаружению пустого элемента/объекта, что вызовет проблемы, отсюда и необходимость в предложении условия. Спасибо вам, ребята.
@foreach($availableExams as $exam)
{{$exam->user->name ?? 'No tutor found'}}
@endforeach
Обновите файл блейда.
@foreach($availableExams as $exam)
{{ $exam->user()->first()->name }}
@endforeach
когда я
dd($user)он возвращает истинный вместо имени. какое может быть имя?