从docs,我有类似的代码:
$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;
}
});
因此,在某种情况下,我想删除该特定项目。
我使用->delete()
方法,但由于得到相同的count()
结果,因此无效。
如何删除这些特定项目?
我尝试了->pop()
,但确实删除了数据库中的项目!我只是想在集合中删除这些项目。 :-P
解决方案正如Pawel Bieszczad所建议的那样,我尝试使用->filter()
函数(那里有很多很好的方法让我的思想被阻挡了)所以我让它运转了像这样:
$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.
}
});