2017-05-03 17 views
1

を把握しよう:私は私の見解でた理由私のforeachの輸入doesntの仕事

@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

ところで、あなたのビューでそれを使用した後にすべきだと思います。 – Troyer

+0

最初に - > first()を取得してから - > where()ステートメント –

+0

他のすべての提案がうまくいかず、ビューに変数を渡している場合は、 'dd($ cart_item ) 'を表示します。何を手に入れますか? –

答えて

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 
0

、解決策は、あなたのビューに$cart_itemを渡すことです。それが終わると

、あなただけの次の手順を実行することができます:あなたが現在行っている

@foreach($cart_item as $cart) 

何それを行うための推奨方法ではありません。このロジックはあなたのコントローラではなく、あなたのビューでなければなりません。

0

ビューにその変数を渡す必要があります。 私はそれはあなたのビューはそれをそのようにはしない

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

comapct機能にそれを追加して、他のように示唆した呼び出し、それがためにそれをしないというモデルでスコープの関数を定義しない方が良いでしょうちょうどときにLaravelだと思います君は。

0

最初はビューにコントローラロジックを追加していますが、これは実際には悪い習慣です。

あなたの問題は、あなたのコントローララインで次のようになります。

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

はNULLを返して、それはShoppingCartItemがあなたのクエリに見つからないか、またはあなただけのビューに変数を送信しないことを意味します。

@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変数は次のように存在するかどうかを制御することができ、あなたのビューで

。ビュー内のロジックのこのタイプを使用しないでください:

関連する問題