Laravel的 except()forget() 帮助者都通过密钥完成他们的工作 . 我'm wondering if there'是一种光滑的laravel方式,当密钥不可预测时,使用其中任何一种来排除项目 . 我有一个看起来像这样的集合:

Collection {#469
#items: array:3 [
  0 => array:2 [
    "name" => "Bug"
    "class" => "App\Models\BugTypes\Bug"
  ]
  1 => array:2 [
    "name" => "PreBug"
    "class" => "App\Models\BugTypes\PreBug"
  ]
  2 => array:2 [
    "name" => "Request"
    "class" => "App\Models\BugTypes\Request"
  ]
]
}

我想永远排除 PreBug . 问题是集合是从名称空间动态构建的,如果要添加或删除名称空间,PreBug的密钥可能会发生变化 . 也就是说,如果你要创建一个按字母顺序排在字母P之前的类型 . 所以当 $data->except(1); 现在有效时,我不能依赖它 . 我知道我可以过滤或映射以删除它,所以大多数人只是想知道是否有人看到了比这更有创意的解决方案 .