我认为:
@foreach($cart_item->where('shopping_cart_id','37') as $cart)
<li class="clearfix">{{$cart->prize_id}}</li>
@endforeach
有人可以帮我弄清楚我的foreach循环有什么问题吗?
我已经尝试基本上显示id了,但它给了我一个php错误。
“未定义变量cart_item”,但我确实在购物车控制器上定义了变量:
$cart_item = ShoppingCartItem::where('shopping_cart_id',$cookie->cart_id)->where('prize_id',$_POST['prize_id'])->first();
答案 0 :(得分:0)
根据您编辑的问题,解决方案是将$cart_item
传递给您的观点。
完成后,您可以执行以下操作:
@foreach($cart_item as $cart)
您目前正在做的不是推荐的做法。此逻辑应位于Controller中,而不是View中。
答案 1 :(得分:0)
您必须将该变量传递给视图。 我猜它是Laravel所以只是在调用你的视图时将它添加到comapct函数
view('viewname', compact('cart_item'))
和其他建议不要那样做,最好在该模型中定义一个范围函数来为你做。
答案 2 :(得分:0)
首先,您要在视图上添加控制器逻辑,这确实是一种不好的做法。
您的问题在您的控制器行上显示:
$cart_item = ShoppingCartItem::where('shopping_cart_id',$cookie->cart_id)->where('prize_id',$_POST['prize_id'])->first();
返回NULL,表示在查询中找不到ShoppingCartItem,或者您只是没有将变量发送到视图。
在您的视图中,您可以控制$ cart_item变量是否存在,如下所示:
@if(isset($cart_item))
@foreach($cart_item->where('shopping_cart_id','37') as $cart)
<li class="clearfix">{{$cart->prize_id}}</li>
@endforeach
@endif
如果未设置$ cart_item变量,这将防止将来出现错误。
答案 3 :(得分:0)
我认为你应该这样做
$cart_item = ShoppingCartItem::where('shopping_cart_id',$cookie->cart_id)->where('prize_id',$_POST['prize_id'])where('shopping_cart_id','37')->get();
然后在你的视图中使用它
@foreach($cart_item as $cart)
<li class="clearfix">{{$cart->prize_id}}</li>
@endforeach