我在雄辩的 Laravel 中有一个嵌套的 BelongsTo 关系,当我尝试访问它一个级别时,它的成功,但当我尝试访问它两个级别时。 它得到错误"试图获取非对象的属性">
这是我的结构模型
订购产品.php
public function product()
{
return $this->belongsTo('AppModelsProduct');
}
产品.php
public function domain()
{
return $this->belongsTo('AppModelsDomain');
}
我想做的是从order_product雄辩中获取域信息,我在刀片上做了这个,但收到错误"试图获取非对象的属性">
$order_product = OrderProduct::first();
$domain_name = $order_product->product->domain->name;
但是当我有产品雄辩并尝试访问域名时,它的成功
$product = Product::first();
$domain_name = $product->domain->name;
我应该怎么做才能从order_product访问域关系到产品>域关系?
谢谢
当您从没有域的产品中获取域时,会出现此问题。您可以使用 laravel 可选功能:
$orderProduct = OrderProduct::with('product.domain')->first();
$domain_name = optional($orderProduct->product->domain)->name;
注意:我还使用预先加载来减少查询。