我正在寻找添加对象到新的集合,因为我循环通过一系列不同的结果。检查对象是否已经存在集合 - 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
你能否提供你的模型和关系你定义了什么?看来,你可以写这样的东西:Item :: where(...) - > with('services'); – YanDatsyuk
所以'$ servicesImpacted'是对象的集合。对? –