@Andre548

Как проверить, существуют ли товары в базе?

В магазине есть товар, и есть товар в другой бд.
Мне нужно пройтись циклом по номерам товаров, то есть из второй бд беру номер, сверяю, если такой присутствует в магазине, то пропускаем и сверяем следующий номер. При несовпадении создать товар. В общем, мой цикл не хочет дальше идти, как только ловит первое совпадение, говорит что товар создан и все. Как исправить?

$value = config('prestashop');
        $lists = Product::all();
        try {
            $webService = new PrestaShopWebservice($value['path'], $value['key'], $value['debug']);
            foreach ($lists as $product) {
                $xml = $webService->get([
                    'resource' => 'products',
                    'display' => 'full',
                    'filter[reference]' => $product->product_number
                ]);
                $resource = $xml->children()->children();
                $flag = false;

                if ($resource->product->reference == $product->product_number) {
                    $flag = true;
                }
                if ($flag !== true) {
                    $this->addProductOnPrestaShop($product);
                } else {
                    return redirect()->route('products.index')
                        ->with('success', 'Products already exists');
                }
            }
            return redirect()->route('products.index')
                ->with('success', 'Products Has Been created successfully');
        } catch (PrestaShopWebserviceException $ex) {
            echo 'Other error: <br />' . $ex->getMessage();
        }
  • Вопрос задан
  • 50 просмотров
Решения вопроса 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
Чтобы цикл не прерывался уберите return из тела цикла

https://www.php.net/return
If called from within a function, the return statement immediately ends execution of the current function
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы