В текущем приложении есть модель Part
и модель Supplier
. У каждой детали есть поставщик.
public function supplier()
{
return $this->belongsTo(Supplier::class);
}
Я добавил аксессор, чтобы получить имя поставщика.
Если я верну весь набор данных, я получу поставщика:
public function getSupplierNameAttribute()
{
return $this->supplier;
}
"supplierName": {
"id": 1,
"uuid": "37e3a715-09d3-4fac-ae88-8f12e63fe79c",
"name": "Laserteam",
"street": "8602 Dessie Tunnel",
"zip": "15869",
"city": "New Clementview",
"email_send_type": null,
"active": 0,
"created_at": "2020-01-09 09:46:02",
"updated_at": "2020-01-09 09:46:02",
"deleted_at": null,
"action": "",
"activeLabel": "<span class='badge badge-secondary'>Inaktiv<\/span>"
},
Если я пытаюсь получить только имя (то, что мне нужно, наконец), возникает ошибка:
public function getSupplierNameAttribute()
{
return $this->supplier->name;
}
ErrorException: Trying to get property 'name' of non-object in file /gopanel/sites/7industry_net/public/7time/app/Models/Part/PartAttribute.php on line 48
Если я пытаюсь таким образом, это работает:
public function getSupplierNameAttribute()
{
return $this->supplier['name'];
}
Я не понимаю, почему return $this->supplier->name;
не работает. Может кто-нибудь помочь?