Показать данные из таблицы 2 — Свойство [имя] не существует в этом экземпляре коллекции

Я пытаюсь отобразить данные из таблицы Course and Test, отношение один ко многим.

course name   | test name
___________________________
course name1  | test name 1
course name2  | test name 2

и т.п.

public $table = 'Course';

public function test()
{
return $this->hasMany('App\Test');
}


public $table = 'Test';

protected $fillable = ['name',];

public function course()
{
return $this->belongsTo('App\Course');
}

TestController.php

public function courses() {

$courses = Course::with(['test'])->get();,
return view('admin.test.list_course', [
'courses' => $courses,

]);
}

list_course.blade.php

 @foreach($courses as $course)

<tr>
<td>
{{ $course->name }}
</td>

<td>
{{ $course->test->name }}
</td>

</tr>
@endforeach

И я получаю ошибку

Свойство [имя] не существует в этом экземпляре коллекции

Пожалуйста, кто-нибудь знает, где ошибка? Спасибо!!

0

Решение

Ваш test отношение к модели курса является отношением «один ко многим», что означает, что для каждого курса может быть более одного теста, поэтому отношение будет возвращать collection всех тестов, относящихся к курсу.
Чтобы отобразить его в представлении, вы можете просмотреть все тесты:

@foreach($courses as $course)
<tr>
<td>
{{ $course->name }}
</td>
<td>
@foreach($course->test as $test)
{{ $test->name }} <br>
@endforeach
</td>
</tr>
@endforeach
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector