【问题标题】:Trying to figure out why my foreach import doesnt work试图弄清楚为什么我的 foreach 导入不起作用
【发布时间】:2017-05-03 08:24:25
【问题描述】:

我的观点是:

@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();

【问题讨论】:

  • BTW:不要在视图中使用这种类型的逻辑。
  • 因为一开始你得到 ->first() 然后尝试使用 ->where() 语句
  • 如果所有其他建议都不起作用,并且您已经将变量传递给您的视图,请在视图开头尝试dd($cart_item)。你得到了什么?

标签: php mysql laravel loops foreach


【解决方案1】:

我认为你应该这样做

$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

【讨论】:

    【解决方案2】:

    一开始,您是在视图上添加控制器逻辑,这确实是一种不好的做法。

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

    $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】:

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

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

      @foreach($cart_item as $cart)
      

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

      【讨论】:

        【解决方案4】:

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

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

        和其他建议不要那样做一样,最好在该模型中定义一个作用域函数来为你做这件事。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-02-08
          • 2021-05-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多