display data from 2 table-property[name]在此集合示例上不存在

mznpcxlj  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(334)

我试着显示课程表和测试表中的数据,这种关系是一对多的。

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');
}

测试控制器.php

public function courses() {

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

         ]);
 }

列出\u course.blade.php

@foreach($courses as $course)

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

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

        </tr>
    @endforeach

我得到一个错误
此集合示例上不存在属性[名称]
拜托,有人知道哪里出错了吗?谢谢您!!

gr8qqesn

gr8qqesn1#

你的 test 课程模型上的关系是一对多关系,这意味着每门课程可以有多个测试,因此关系将返回一个 collection 所有属于这门课的考试。要在视图中显示它,可以循环执行所有测试:

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

相关问题