试图找出为什么我的 foreach 导入不起作用

Trying to figure out why my foreach import doesnt work

我的观点是:

@foreach($cart_item->where('shopping_cart_id','37') as $cart) 

 <li class="clearfix">{{$cart->prize_id}}</li>

@endforeach

有人可以帮我弄清楚我的 foreach 循环有什么问题吗?

我已经归结为只是尝试基本上显示 ID,但它给了我一个 php 错误。

"Undefined variable cart_item",但我确实在购物车控制器上定义了变量:

$cart_item = ShoppingCartItem::where('shopping_cart_id',$cookie->cart_id)->where('prize_id',$_POST['prize_id'])->first();

根据您编辑的问题,解决方案是将 $cart_item 传递给您的视图。

完成后,您可以执行以下操作:

@foreach($cart_item as $cart)

您目前的操作不是推荐的操作方式。这个逻辑应该在你的控制器而不是你的视图中。

您必须将该变量传递给视图。 我猜它是 Laravel 所以在调用你的视图时将它添加到 comapct 函数

view('viewname', compact('cart_item'))

并且像其他人建议的那样不要这样做,最好在该模型中定义一个范围函数来为您完成。

起初你是在视图上添加控制器逻辑,这确实是一种糟糕的做法。

你的问题看起来像你的控制器行:

$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 变量,这将防止将来出现错误。

我觉得你应该这样做

$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