2017-11-02 3 views
1

Wie nur einen Satz von Daten aus einem Array in Laravel-5,4-Controller ermöglichen:erlauben nur einen Satz von Daten aus foreach Schleife in Laravel-5.4-Controller

foreach(Cart::content() as $cartitem) { 
    if($cartitem->id === $id){ 
     do something.... 
    } 
} 

Ich will nur den Satz von Daten nehmen von $ cartitem, wenn $ cartitem-> id === $ id ($ id kommt von Anfrage) und alle anderen Daten von $ cartitem ablehnen. Die Datenmenge kann irgendwo (in einem beliebigen Index) vom Array gefunden werden.

+0

zeigen Ihnen, wie Sie Ihre Array aussehen? – urfusion

+0

Warenkorb :: content() wo bekommst du das ?? –

+0

@MahfuzShishir Ich benutze LaravelShoppingcart-Paket. –

Antwort

2

Sie können where() von eloquent verwenden, um das gleiche zu erreichen.

Cart::content()->where('id', $id); 
+0

Hat die Tricks für mich! Vielen Dank. Hat nicht erkannt Cart wird die -> where() Abfrage unterstützen. Sie sind genial! –

+1

Sie können die Antwort annehmen, wenn es für Sie funktioniert :) – Puneee

+0

Ich wünschte, ich könnte das, aber mein schlechter Ruf erlaubt mir nicht :(aber sobald mein Ruf erhöht, werde ich sicher. –

0

Ich würde empfehlen, dass Sie in der Anfrage bereits für diese spezifische ID aus dem Warenkorb abfragen. Auf diese Weise brauchen Sie diese foreach-Schleife nicht.

foreach(Cart::content() as $cartitem) { 
    if($cartitem->id === $id){ 
     $cartitem; // this is your item 
     break; // break from loop you found it already so stop looping 
    } 
} 

Von der documentation können Sie verwenden: (liefert alle Einzelteile mit id = 1)

$cart->search(function ($cartItem, $rowId) { 
    return $cartItem->id === 1; // this will return all items with id = 1 
}); 

Oder get von rowID

$rowId = 'da39a3ee5e6b4b0d3255bfef95601890afd80709'; // this is just demo code 
Cart::get($rowId); 
+0

eigentlich hier musste ich mit der verfügbaren Produkt ID aus DB mit dem aktuellen Warenkorb überprüfen, die nie mit "rowId" übereinstimmen würde "Also musste ich mit der gespeicherten" ID "des Wagens übereinstimmen. und behalten Sie auch den ganzen Warenkorb in einer Ansicht für alle Produkte bei. –