2016-06-22 3 views
1

Vom docs, ich habe diesen ähnlichen Code:Eloquente ORM: Wie entferne ich ein bestimmtes Element aus einer Sammlung innerhalb der einzelnen Funktionen?

$collection = $collection->each(function ($item, $key) { 
    if (/* some condition */) { 
     //I want to remove this specific item: 
     $item->delete(); //This is not working for me 
     //return false; 
    } 
}); 

eine bestimmte Bedingung So gegeben, ich will, dass bestimmte Artikel löschen.

Ich benutze die ->delete() Methode, aber es funktioniert nicht, da ich die gleichen count() Ergebnisse erhalte.

Wie entferne ich diese spezifischen Elemente?

Ich habe versucht ->pop(), aber es löscht die Elemente aus der Datenbank! Ich möchte diese Objekte nur in der Sammlung entfernen. :-P

Lösung Wie Pawel Bieszczad vorgeschlagen, habe ich versucht, mit ->filter() Funktion (Es gibt so viele schöne Methoden sind, die meiner Meinung nach wurde blockiert), so habe ich es wie folgt arbeiten:

$filtered = $projects->filter(function($item)use($app,$lastyear,$thisyear){ 
    if(some_condition){ 
    return $item; //I do want to keep this item in the collection. 
    }else{ 
    //Don't do anything. Remove item. I don't want to keep this item in the collection. 
    } 
}); 

Antwort

2

Sie möchte die filter Methode verwenden

+0

Haha, yep. Das hat den Trick gemacht! ☻ – Pathros

Verwandte Themen