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.
}
});
Haha, yep. Das hat den Trick gemacht! ☻ – Pathros