Eloquent ORM:如何从每个函数内的集合中删除特定项?

时间:2016-06-22 16:18:16

标签: eloquent

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.
  }
});

1 个答案:

答案 0 :(得分:2)

您想使用filter方法