Laravel - 从刀片视图中的模型关系中检索属性

问题描述 投票:1回答:3

我使用名为“previous_owner”的外键创建了产品和用户之间的关系。我可以看到当我转移我正在传递给我的数据的视图时,我可以使用以下数据:

$product->relations->product_owner->user->attributes->name

但是我如何从我的视图中访问它。我正在尝试遍历产品,然后执行以下操作:

{{ $product->product_owner->user->name }}

要么

{{ $product->product_owner->name }}

但它不起作用,继续得到:

“试图获得非对象的属性'名称'

SCREEN GRAB OF THE OBJECT

php laravel laravel-5 view
3个回答
2
投票

在您的视图中,代码必须与此类似

@foreach($products as $product)
    {{ $product->product_owner->name }}
@endforeach

此代码表示每个产品都有product_owner。当一个产品没有product_owner$product->product_owner的案例值为Null然后你的代码是null->name并且你得到错误。要修复它,您必须检查关系为null或使用??运算符。将您的代码更改为

@foreach($products as $product)
    {{ $product->product_owner->name ?? ''}}
@endforeach

要么

@foreach($products as $product)
    @if($product->product_owner)
        {{ $product->product_owner->name}}
    @endif
@endforeach

2
投票

如果name是属性而product_owner是关系函数,那么尝试以下:

{{ $product->product_owner()->name }}

1
投票

您的product_owner不是stdClass。这是阵列。因此,您无法使用“ - >”运算符访问此数组的此键。尝试

{{ $product->product_owner['name'] }}
© www.soinside.com 2019 - 2024. All rights reserved.