未定义的变量:@foreach循环中的产品

时间:2019-06-12 15:45:12

标签: php laravel voyager

我试图覆盖voyager-admin的视图并对其进行编辑,但出现“未定义变量:产品”错误,我不知道为什么。 这是我的OrdersController:

$order = Orders::find($id);
$products = $order->products;

return Voyager::view($view, compact('dataType', 'dataTypeContent', 'isModelTranslatable','order', 'products'))

这是我的观点:

<ul>
    @foreach ($products as $product)
    <li style="margin-bottom: 10px">
    <div>ID Produs: {{$product->id}}</div>
    <div>Nume Produs: {{$product->name}}</div>
    <div>Pret Produs: {{$product->presentPrice()}}</div>
    <div>Cantitate: {{$product->pivot->quantity}}</div>
    </li>
    @endforeach
 </ul>

如果还有其他需要,请告诉我,我只是不明白为什么会向我抛出此错误。

我的订单模型

 public function products(){
  return $this->belongsToMany('App\Product')->withPivot('quantity');
}

我的产品型号

 public function orders(){

    return $this->belongsToMany('App\Orders');
}

2 个答案:

答案 0 :(得分:0)

添加验证以检查收藏集

$order = Orders::find($id);
if($order != null){
$products = $order->products;

return Voyager::view($view, compact('dataType', 'dataTypeContent', 'isModelTranslatable','order', 'products'))
} else {
return null;
}

答案 1 :(得分:0)

我解决了它,我只是愚蠢的,忘记了在Voyager-Admin中覆盖控制器。抱歉浪费您的时间。感谢所有试图帮助我的人!