检查对象是否已经存在于集合中 - Laravel
我希望在循环浏览一系列不同的结果时将对象添加到新集合中。
查询:
$osRed = Item::where('category', 'Hardware')
->where(function ($query) {
$query->where('operating_system', 'xxx')
->orWhere('operating_system', 'xxx')
->orWhere('operating_system', 'xxx');
})
->orderBy('operating_system', 'ASC')
->get();
然后,遍历这些结果并将相关对象添加到新集合。
foreach ($osRed as $os) {
foreach ($os->services as $service) {
if (!($servicesImpacted->contains($service))) {
$servicesImpacted->push($service);
}
}
}
然后,我继续查看另一组结果,并将这些结果中的相关服务添加到集合中。
但是,它不会发现该对象已经在集合中,我最终会得到大量(似乎是)重复项。
理想情况下,我想匹配$service对象的 name 属性,但 contains 方法似乎不支持这一点。
toString() must not throw an exception