Laravel关系错误 - 试图获取非对象的属性

时间:2015-11-02 08:26:19

标签: php laravel

我正在尝试获取我已设置的关系的ID。

模型

public function plateContainer()
{
    return $this->belongsTo('App\Models\PlateContainer');
}

PlateContainer 模型

public function plate()
{
    return $this->hasMany('App\Models\Plate');
}

public function equipmentStatusCode()
{
    return $this->hasOne('App\Models\EquipmentStatusCode');
}

EquipmentStatusCode 型号

public function plateContainer()
{
    return $this->belongsTo('App\Models\PlateContainer');
}

当我尝试。

    $p  = Plate::findOrFail(4);
    $p->plateContainer->equipmentStatusCode;

  return $p;

我得到Trying to get property of non-object。我做错了什么?

2 个答案:

答案 0 :(得分:2)

plateContainerequipmentStatusCode是一个功能。使用圆括号。

将以下关系添加到Plate模型:

public function equipmentStatusCode()
{
    return $this->hasManyThrough('App\Models\EquipmentStatusCode', 'App\Models\PlateContainer');
}

尝试:

$p  = Plate::findOrFail(4);
$p->equipmentStatusCode();

return $p;

答案 1 :(得分:2)

试试这个:

我只是试图创造一个类似的情况。我同样修改了代码:

$p  = Plate::findOrFail(4);

$p->equipmentStatusCode->plateContainer;
return $p;

我能够获取结果数组。