我在eloquent 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 eloquent获取域信息,我在刀片上执行了此操作,但收到错误消息“正在尝试获取非对象的属性”
$order_product = OrderProduct::first();
$domain_name = $order_product->product->domain->name;但是当我有了产品口才并尝试访问域名时,它就成功了
$product = Product::first();
$domain_name = $product->domain->name;如何通过产品->域名关系从order_product访问域名关系?
谢谢
发布于 2018-05-25 11:49:28
当你从没有域名的产品中获取域名时,问题就出现了。您可以使用laravel可选函数:
$orderProduct = OrderProduct::with('product.domain')->first();
$domain_name = optional($orderProduct->product->domain)->name;注意:我还使用了eager来减少查询。
https://stackoverflow.com/questions/50521044
复制相似问题