我在雄辩的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->域名关系访问域名关系?
由于
答案 0 :(得分:0)
当您从没有域的产品中获取域时,会出现问题。您可以使用laravel可选功能:
$orderProduct = OrderProduct::with('product.domain')->first();
$domain_name = optional($orderProduct->product->domain)->name;
注意:我还使用预先加载来减少查询。