В моей системе автомобили и категория продукта - это комбинация, имеющая код EAN. В каждом автомобиле может быть несколько категорий продуктов с разными кодами EAN, и я хочу использовать код EAN, принадлежащий этой конкретной комбинации. Я использую foreach, чтобы перебрать все автомобили, получить правильный код EAN и добавить в Arraylist для категории продукта, которая у него есть, но всякий раз, когда я запускаю свой код, для всех категорий продуктов, которые есть в машине, будет использоваться только последний код EAN .

Например: Автомобиль 1 имеет 3 категории: cat1 имеет EAN 123, cat2 имеет EAN 324, а cat3 имеет EAN 543, но когда я проверяю категорию автомобиля 1, все коды EAN устанавливаются на 543.

Цикл, о котором я говорю:

    foreach($cars as $car) {
        if($car->Cat1 == 1) {
            $ean = koppelEan::get()->filter( array('ProductID' => 127, 'AutoTypeID' => $car->ID))->first();
            $car->EAN = $ean->EAN;

            self::$Cat1->add($car);
        }

        if($car->Cat2 == 1) {
            $ean = koppelEan::get()->filter( array('ProductID' => 126, 'AutoTypeID' => $car->ID))->first();
            $car->EAN = $ean->EAN;
            self::$Cat2->add($car);
        }

        if($car->Cat3 == 1) {
            $ean = koppelEan::get()->filter( array('ProductID' => 781, 'AutoTypeID' => $car->ID))->first();

            $car->EAN = $ean->EAN;
            self::$Cat3->add($car);
        }

        if($car->Cat4 == 1) {
            $ean = koppelEan::get()->filter( array('ProductID' => 2924, 'AutoTypeID' => $car->ID))->first();
            $car->EAN = $ean->EAN;
            self::$Cat4->add($car);
        }

        if($car->Cat5 == 1) {
            $ean = koppelEan::get()->filter( array('ProductID' => 993, 'AutoTypeID' => $car->ID))->first();
            $car->EAN = $ean->EAN;
            self::$Cat5->add($car);
        }

        if($car->Cat6 == 1) {
            $ean = koppelEan::get()->filter( array('ProductID' => 5195, 'AutoTypeID' => $car->ID))->first();
            $car->EAN = $ean->EAN;
            self::$Cat6->add($car);
        }
    }
-2
iJokerAssassin 14 Фев 2018 в 10:57

1 ответ

Лучший ответ

После некоторых глубоких исследований я нашел это

            $tempCar = clone $car;
            $ean = koppelEan::get()->filter( array('ProductID' => 993, 'AutoTypeID' => $car->ID))->first();
            $tempCar->EAN = $ean->EAN;
            self::$cat1->add($tempCar);
0
iJokerAssassin 14 Фев 2018 в 11:53