Показать данные из таблицы 2 - Свойство [имя] не существует в этом экземпляре коллекции - PullRequest
0 голосов
/ 08 ноября 2018

Я пытаюсь отобразить данные из таблицы 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

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

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

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

1 Ответ

0 голосов
/ 08 ноября 2018

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

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