2017-05-03 6 views
1

ich auf meiner Ansicht haben:Sie versuchen, herauszufinden, warum meine foreach Import funktioniert nicht

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

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

@endforeach 

Kann jemand mir helfen herauszufinden, was falsch mit meiner foreach-Schleife?

Ich bin gekommen, nur zu versuchen, im Grunde die IDs anzuzeigen, aber es gibt mir einen PHP-Fehler.

„Nicht definierte Variable cart_item“, aber ich habe da so die Variable auf den Wagen Controller definieren:

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

BTW: Verwenden Sie diese Art von Logik in der Ansicht nicht verwenden. – Troyer

+0

Weil zuerst -> zuerst() und danach versuchen Sie es mit -> where() Anweisung –

+0

Wenn alle anderen Vorschläge nicht funktioniert haben, und Sie haben die Variable bereits an Ihre Ansicht übergeben, dann versuchen Sie 'dd ($ cart_item) 'am Anfang deiner Sicht. Was bekommst du? –

Antwort

0

denke ich, Sie mögen diese

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

und nach, dass es

Ihrer Ansicht verwenden tun sollten
@foreach($cart_item as $cart) 

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

@endforeach 
0

Basierend auf Ihrer editierten Frage, die Lösung $cart_item zu Ihrer Ansicht passieren soll.

Sobald dies geschehen ist, können Sie einfach wie folgt vor:

@foreach($cart_item as $cart) 

Was Sie derzeit tun, ist nicht der empfohlene Weg, es zu tun. Diese Logik sollte in Ihrem Controller und nicht in Ihrer Ansicht sein.

0

Sie müssen diese Variable an die Ansicht übergeben. Ich denke, es Laravel ist so einfach, wenn Ihre Ansicht fügen Sie es die comapct Funktion

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

Und wie andere tut es auf diese Weise nicht vorgeschlagen nennen, es ist besser, sie eine Scope-Funktion in diesem Modell definieren, die es tut für Sie.

0

Zuerst fügen Sie Controller-Logik in einer Ansicht hinzu, und das ist wirklich eine schlechte Übung.

Ihr Problem sieht aus wie auf dem Controller Linie:

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

Ist NULL zurückkehrt, bedeutet das ShoppingCartItem nicht auf Ihre Frage gefunden oder Sie senden einfach nicht die Variable zur Ansicht.

Ihrer Ansicht nach können Sie steuern, ob der $ cart_item Variable wie diese vorhanden ist:

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

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

@endforeach 
@endif 

Dies wird künftig Fehler bei dem $ cart_item Variable zu verhindern, ist nicht festgelegt.

Verwandte Themen