拉拉维尔刀片嵌套属于关系访问



我在雄辩的 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;

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

相关内容

  • 没有找到相关文章

最新更新