gpt4 book ai didi

laravel - 在 View 上显示数据时尝试获取非对象的属性 'column_name'

转载 作者:行者123 更新时间:2023-12-01 04:38:23 25 4
gpt4 key购买 nike

我想在我的 Blade View 上显示关系数据中的数据,但是当我尝试显示数据时,表只包含一行数据,它显示在 View 上,但如果我在表中插入多个数据,则会出现错误。

我有三个表coursessectionscourse_section。在 course_section 表中,这些是以下列 course_idsection_id

我已经尝试过 {{ $section->courses()->first()->courseTitle }} 这个片段在 stackoverflow 上找到。

我的部分模型代码:-

class section extends Model
{
public function courses(){
return $this->belongsToMany('App\Model\admin\course\course','course_sections','course_id');
}
}

我的部分 Controller 代码:-

$sections = section::with('courses')->orderBy('id','DESC')->get();
return view('backend.courses.section.all',compact('sections','courses'));

我的查看代码:-

@foreach ($sections as $section)
<tr>
<td>{{ $section->title }}</td>
<td>{{ $section->courses()->first()->courseTitle }}</td>
</tr>
@endforeach

我收到此错误

"Trying to get property 'courseTitle' of non-object (View: resources/views/backend/courses/section/all.blade.php)"

最佳答案

以下是您做错的事情:

  1. $section->courses() 替换为 $section->courses,因为您已经在进行早期加载。并且 $section->courses() 将再次查询数据库。

  2. 检查关系数据是否存在然后显示。

所以你的代码如下:

@foreach ($sections as $section)
<tr>
<td>{{ $section->title }}</td>
<td>
@php
$course = $section->courses->first();
@endphp

{{ $course->courseTitle or "" }}
</td>
</tr>
@endforeach

如果有帮助请告诉我!

已编辑:

根据对话,关系已发生变化,如course ->hasMany ->sectionssection ->belongsTo ->course,因此 Blade 将发生变化。

@foreach ($sections as $section)
<tr>
<td>{{ $section->title }}</td>
<td>
@php
$course = $section->course;
@endphp

{{ $course->courseTitle or "" }}
</td>
</tr>
@endforeach

关于laravel - 在 View 上显示数据时尝试获取非对象的属性 'column_name',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56679812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com