首页 > 解决方案 > Laravel 6关系输出为数组而不是对象

问题描述

laravel 6.x 在一台支持数组的电脑上访问关系时,将输出作为数组而不是对象返回,而在另一台电脑上,它只支持对象。

class Category extends Model
{

    public function parent() {
        return $this->belongsTo(Category::class,'parent_id');
    }

    public function children() {
        return $this->hasMany(Category::class,'parent_id');
    }

}

在刀片页面上,可以像下面这样访问

 @foreach ($categories as $category)
   <tr>

     <td >{{$category->parent['name']}}</td>
   </tr>
 @endforeach

标签: laravel

解决方案


Eloquent模型实现了 ArrayAccess 。

所以$category->parent->name应该和$category->parent['name'].

它实际上不是一个数组,它只是可以像一个数组一样访问。


推荐阅读