gpt4 book ai didi

php - 检查集合中是否已存在对象 - Laravel

转载 作者:行者123 更新时间:2023-12-02 19:22:53 25 4
gpt4 key购买 nike

当我循环访问一系列不同的结果时,我希望将对象添加到新集合中。

查询:

$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

最佳答案

您可以使用contains()定义了键和值:

if (!$servicesImpacted->contains('name', $service->name))

或者您可以使用where()count()本例中的收集方法例如:

if ($servicesImpacted->where('name', $service->name)->count() === 0)

关于php - 检查集合中是否已存在对象 - Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44215902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com