Laravel Blade Nested BelongsTo Доступ к отношениям - PullRequest
0 голосов
/ 25 мая 2018

У меня есть вложенные отношения BelongsTo в красноречивом Laravel, когда я пытаюсь получить к нему доступ на одном уровне его успеха, но когда я пытаюсь получить к нему доступ на двух уровнях.его получение ошибки «Попытка получить свойство не-объекта»

Вот мои модели структуры

OrderProduct.php

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

Product.php

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

Я хочу получить информацию о домене из eloquent order_product, и я сделал это на блейде, но получаю ошибку «Попытка получить свойство не-объекта»

$order_product = OrderProduct::first();
$domain_name = $order_product->product->domain->name;

Но когда у меня есть продукткрасноречиво и попытаться получить доступ к доменному имени, его успех

$product = Product::first();
$domain_name = $product->domain->name;

Что мне нужно сделать, чтобы получить доступ к доменным отношениям из order_product через продукт-> доменное отношение?

Спасибо

1 Ответ

0 голосов
/ 25 мая 2018

Проблема возникает, когда вы выбираете домен из продукта, который не имеет домена.Вы можете использовать опциональную функцию laravel:

$orderProduct = OrderProduct::with('product.domain')->first();
$domain_name = optional($orderProduct->product->domain)->name;

Примечание: я также использую энергичную нагрузку для сокращения запросов.

...