php - 试图获取非对象 Laravel 5,4 的属性
问题描述
我是 Laravel 的新手。我只想问我的代码是否正确。我想在 Collection 文件夹中的 index.blade.php 中显示某个分配的楼层名称和该区域的建筑物。集合属于一个作业,作业属于一个区域。
我在 Collection index.blade.php 中的代码
@foreach ($collections as $collection)
<tr>
<td>
{{ $collection->assignment->area['floor'] }} Floor
{{ $collection->assignment->area['building'] }}
</td>
<tr>
@endforeach
该代码生成错误“尝试获取非对象的属性”。所以我在问正确的显示方式。
这里是模型
集合.php
public function assignment()
{
return $this->belongsTo(Assignment::class);
}
赋值.php
public function collections()
{
return $this->hasMany(Collection::class);
}
public function area()
{
return $this->belongsTo(Area::class);
}
面积.php
public function assignments()
{
return $this->hasMany(Assignment::class);
}
CollectionsController.php
public function index() //shows the table of the collections
{
$collections = Collection::all();
$disposals = Disposal::all();
return view('collections.index', compact('collections', 'disposals'));
}
解决方案
“更新”:问题出在您这样打开它的未关闭的 tr 标签上,
<tr><tr>
但应该是<tr></tr>
:D 就是这样,检查解决方案并告诉我它是否有效。但看看好的一面,你的代码现在更干净、更实用了:D
链接很糟糕:),尝试创建一个可以让您获得该区域的功能,否则......
或者您可以使用 withDefault 并返回相关模型的新实例
此外,您的数据库方案应如下所示:
收藏品
- ID
- assignment_id
作业
- ID
- area_id
但对于你的例子,我可以这样做:
集合.php
public function assignment()
{
return $this->belongsTo(Assignment::class)
->withDefault();
}
赋值.php
public function collections()
{
return $this->hasMany(Collection::class);
}
public function area()
{
return $this->belongsTo(Area::class)
->withDefault();
}
面积.php
public function assignments()
{
return $this->hasMany(Assignment::class);
}
CollectionsController.php
public function index() //shows the table of the collections
{
$collections = Collection::all();
$disposals = Disposal::all();
return view('collections.index', compact('collections', 'disposals'));
}
也用于:
@foreach ($collections as $collection)
<tr>
<td>
{{ $collection->assignment->area->floor }} Floor
{{ $collection->assignment->area->building }}
</td>
<tr/>
@endforeach
如果一切正常,但仍然没有结果,请检查数据本身是否存在,因此请检查集合是否有任何分配,或者返回分配的任何区域...
推荐阅读
- android - 带有谷歌助手的 App Actions 测试工具显示“抱歉,我找不到它”
- vue.js - vuejs 条件包装器
- javascript - 将对象数组压缩为具有嵌套数组的唯一对象数组
- python - 熊猫 drop_duplicates() 挂在 jupyter-notebook - 提高 drop_duplicates() 性能的方法?
- wildfly - 带 Wildfly 的流口水在负载下没有响应
- c# - 如何使用 Monogame 正确获取文件夹中的所有纹理?
- python - 在 GCP 虚拟机上使用 python 检索存储桶
- c++ - 使用类函数将类对象添加到数组中
- r - R规范的dplyr替换方式如果
- c# - 读取 RVT 文件