Как получить имя из красноречивых моделей классов на мой взгляд - PullRequest
0 голосов
/ 06 апреля 2019

Я пытаюсь получить имя пользователя, используя следующий код, но я получаю сообщение об ошибке.пожалуйста помоги.Ошибка:

«Попытка получить свойство« имя »необъекта (Просмотр: /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'));
   }

Ответы [ 3 ]

1 голос
/ 06 апреля 2019

У каждого Exam есть один User, а у User есть имя?Попробуйте это:

@foreach($availableExams as $exam)
    {{$exam->user->name }}
@endforeach
0 голосов
/ 06 апреля 2019

Обновите файл блейда.

@foreach($availableExams as $exam)
           {{ $exam->user()->first()->name }}
@endforeach
0 голосов
/ 06 апреля 2019

Понял. Один пользователь пропал без вести. использование оператора if для проверки существования объекта решает его. Использование 2 стрелок может привести к нахождению пустого элемента / объекта, что вызовет проблемы, поэтому возникает необходимость в условии условия. Спасибо, ребята.

@foreach($availableExams as $exam)
    {{$exam->user->name ?? 'No tutor found'}} 
 @endforeach
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...