Laravel Blade Nested BelongsTo关系访问

时间:2018-05-25 03:22:27

标签: php laravel eloquent relationship laravel-blade

我在雄辩的Laravel中有一个嵌套的BelongsTo关系,当我尝试将其成功访问它的一个级别时,但当我尝试访问它的两个级别时。它的错误“试图获得非对象的属性”

这是我的结构模型

OrderProduct.php

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

Product.php

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

我想要做的是从order_product中获取域信息,并且我在刀片上做了这个,但是收到错误“试图获取非对象的属性”

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

但是,当我的产品雄辩并试图访问域名时,它的成功

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

如何从order_product到product->域名关系访问域名关系?

由于

1 个答案:

答案 0 :(得分:0)

当您从没有域的产品中获取域时,会出现问题。您可以使用laravel可选功能:

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

注意:我还使用预先加载来减少查询。

相关问题