我有3个型号:商店模型,产品型号,订单型号
商店模型是这样的:
class Store extends Model
{
protected $fillable = ['name', 'user', 'address', 'phones', 'email', 'photo'];
...
}
产品型号是这样的:
class Product extends Model
{
protected $fillable = ['store_id','category_id','name', 'photo','description'];
...
}
订单模型就是这样:
class Order extends Model
{
...
public function products()
{
return $this->belongsToMany(Product::class, 'orders_products')
->withPivot('sub_total','quantity','price','information')->withTimestamps();
}
public function store()
{
return $this->belongsTo(Store::class);
}
}
我有4个表:存储表,订单表,产品表,orders_products表
orders_producs表是数据透视表
在视图中,我称之为:
<a href="javascript:">{{ $order->store->name }}</a>
有效。它成功显示商店名称
我的问题是我想要显示产品名称
在查看刀片laravel我尝试:
<a href="javascript:">{{ $order->products->name }}</a>
存在错误:
未定义的属性:Illuminate \ Database \ Eloquent \ Collection :: $ id (查看:...
这似乎是错误的召唤方式
我该如何解决?
答案 0 :(得分:1)
由于它是belongsToMany()
,您可以显示如下数据:
@foreach ($order->products as $product)
{{ $product->name }}
{{ $product->pivot->price }}
@endforeach