试图在 laravel eloquent 中获取非对象错误的属性“名称”
Posted
技术标签:
【中文标题】试图在 laravel eloquent 中获取非对象错误的属性“名称”【英文标题】:Trying to get property 'name' of non-object error in laravel eloquent 【发布时间】:2021-07-18 13:39:36 【问题描述】:在category
模型中自行加入Eloquent
public function parent()
return $this->belongsTo(Category::class, 'parent_id');
在刀片文件中:
@foreach($categories as $category)
<tr>
<td> $category->parent </td> // error in this line
</tr>
@endforeach
当我这样做时,它显示:
"id": 1,
"name": "mobile",
"description": null,
"image": null,
"parent_id": 0,
"created_at": null,
"updated_at": null
当我将<td> $category->parent </td>
更改为<td> $category->parent->name </td>
时,它显示如下错误:
试图获取非对象的属性“名称”(查看:C:\Users\HP\Desktop\laravel-project\laravel_ecommerce\resources\views\admin\pages\category\index.blade.php)
如何访问$category->parent->name
?
【问题讨论】:
【参考方案1】:如果父母没有孩子,那么你会得到这个错误。如果父对象为空,下面的示例将抛出 No Child
作为输出:
$category->parent->name ?? 'No Child'
【讨论】:
【参考方案2】:其实你得到这个是因为 hasMany 这样的关系关系。
$category->parent?$category->parent->name:"Some other message"
【讨论】:
以上是关于试图在 laravel eloquent 中获取非对象错误的属性“名称”的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5 Eloquent:如何获取正在执行的原始 sql? (带有绑定数据)