Laravel 试图获得财产';列名称';在视图上显示数据时显示非对象的
我想在我的刀片视图上显示关系数据中的数据,但当我试图显示数据时,而表中只包含一行数据,它会显示在视图中,但如果我在表中插入多个数据,它会给我一个错误 我有三个表Laravel 试图获得财产';列名称';在视图上显示数据时显示非对象的,laravel,eloquent,laravel-5.8,Laravel,Eloquent,Laravel 5.8,我想在我的刀片视图上显示关系数据中的数据,但当我试图显示数据时,而表中只包含一行数据,它会显示在视图中,但如果我在表中插入多个数据,它会给我一个错误 我有三个表课程,部分,课程。在course\u部分表中,以下列是course\u id和section\u id 我尝试了{{$section->courses()->first()->courseTitle}在stackoverflow上找到的视图中的这个片段 我的分区型号代码:- 类节扩展了模型 { 公共职能课程(){ 返回$this->bel
课程
,部分
,课程
。在course\u部分
表中,以下列是course\u id
和section\u id
我尝试了{{$section->courses()->first()->courseTitle}
在stackoverflow上找到的视图中的这个片段
我的分区型号代码:-
类节扩展了模型
{
公共职能课程(){
返回$this->belongtomany('App\Model\admin\course\course','course\u sections','course\u id');
}
}
我的分区控制器代码:-
$sections=section::with('courses')->orderBy('id','DESC')->get();
返回视图('backend.courses.section.all',compact('sections','courses');
我的视图代码:-
@foreach($sections作为$section)
{{$section->title}
{{$section->courses()->first()->courseTitle}
@endforeach
我得到了这个错误
“正在尝试获取非对象的属性'CourseTile'(视图:
参考资料/views/backend/courses/section/all.blade.php)
分区控制员:
$sections = section::with('courses')->orderBy('id','DESC')->get();
return view('backend.courses.section.all', compact('sections'));
在视图中,您必须循环各部分,然后循环课程,并创建每一行。例如:
@foreach ($sections as $section)
@foreach ($section->courses as $course)
<tr>
<td>{{ $section->title }}</td>
<td>{{ $course->courseTitle }}</td>
</tr>
@endforeach
@endforeach
并且认为:
@foreach ($courses as $course)
@foreach ($course->sections as $section)
<tr>
<td>{{ $section->title }}</td>
<td>{{ $course->courseTitle }}</td>
</tr>
@endforeach
@endforeach
@foreach($courses as$course)
@foreach($course->sections作为$section)
{{$section->title}
{{$course->courseTitle}
@endforeach
@endforeach
以下是您做错的地方:
$section->courses()
替换为$section->courses
,因为您已经在进行早期加载。而$section->courses()
将再次查询数据库@foreach ($sections as $section)
<tr>
<td>{{ $section->title }}</td>
<td>
@php
$course = $section->courses->first();
@endphp
{{ $course->courseTitle or "" }}
</td>
</tr>
@endforeach
您应该为关系执行另一个foreach。我希望在表中显示数据,并一次显示一个课程名称@porloserros我使用了您的解决方案,但它仅重复表中的第一行。所有课程都具有相同的课程名称?也许你应该查询模型课程及其相关信息sections@AbhishekNimbalkar我用另一个选项更新了答案。我不知道我是否理解你想要实现的目标建议不是供进一步讨论的;这段对话已经结束。
@foreach ($sections as $section)
<tr>
<td>{{ $section->title }}</td>
<td>
@php
$course = $section->courses->first();
@endphp
{{ $course->courseTitle or "" }}
</td>
</tr>
@endforeach
@foreach ($sections as $section)
<tr>
<td>{{ $section->title }}</td>
<td>
@php
$course = $section->course;
@endphp
{{ $course->courseTitle or "" }}
</td>
</tr>
@endforeach