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

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

查询:

$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)

部署时文件存储无法在laravel项目上运行 - php

我有在我的本地主机服务器上工作的laravel项目,但是当我在000webhostapp.com Webhost域上部署它时。文件存储库不起作用。它保存数据,但不保存文件或图像。继承人的链接。 https://vincetestsite.000webhostapp.com/products_list您可以通过用户名登录-密码和密码-123和下面的代码。 $p…

Laravel 5发布资产 - php

我正在使用Laravel 5,我想将twitter bootstrap CSS和JS发布到公共目录。我确实使用Composer来获取twitter / bootstrap软件包,并且该部分运行正常,因此我想要的文件现在位于vendor / twitter / bootstrap / dist中。但是我无法使它工作。我得到“什么都没发布”。每次尝试时都会发送消…

php-casperjs获取内部文本 - php

我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…

Laravel 5中带有文件的Ajax表单提交 - php

我正在尝试在laravel 5中实现fileupload。但是首先要发送数据,例如简单的字符串。我的表格: {!!Form::open(["url"=>"/photos", "method" => "post", "files"=>true,…

Laravel Valet安装后,ping test.dev会返回“未知主机” - php

更新:不要使用“ .dev”。最初于2016年发布时,还不错。现在不是。首先将TLD更改为“ .localhost”之类的名称。 (此更改不会解决我的问题,但是如果您仍在使用“ .dev”,则可能会解决您的问题)。问题:我已经安装了Laravel Valet,并且似乎一切正常,除了我ping test.dev(它仅包含一个index.htm文件并且位于~/S…