Zend Framework SpeckCart не работает правильно

Я использую модуль корзины SpeckCart в своем проекте ZF2. Я настроил модуль, и он успешно добавляет товар в корзину, но он перезаписывает один и тот же товар при каждом вызове вместо добавления новых товаров. Пожалуйста, направьте меня, где я делаю что-то не так, вот код:

    public function addAction(){
    $prod_id = $this->params()->fromPost('prod_id');
    $product = $this->getProductTable()->getProduct($prod_id);

    $item = new CartItem();
    $item->setDescription($product->name);
    $item->setCartItemId($prod_id);
    $item->setPrice($product->price);

    $cs = $this->getServiceLocator()->get('SpeckCart\Service\CartService');

    $cart = $cs->getSessionCart(true); 

// Я думаю, что приведенная выше строка создает новую корзину каждый раз, и в этом проблема. Я не могу знать, как заставить его использовать существующую корзину, созданную при предыдущем вызове.

    $cs->addItemToCart($item, $cart);

Я новичок в ZF, пожалуйста, дайте мне знать, как правильно использовать этот модуль корзины. Приведенный выше код взят из действия моего приложения, которое вызывается при каждом нажатии кнопки "Добавить в корзину".

1 ответ

Решение

Просто наткнулся на это после того, как впервые попробовал модуль speckcart. Я думаю, что ваша проблема здесь в том, что вы пытаетесь установить CartItemId. Код базы данных (предоставленный в модуле) делает Id элемента корзины автоматически наращиваемым полем первичного ключа, поэтому его не следует устанавливать, поскольку база данных должна создавать его автоматически.

Кроме того, вы должны указать количество, так как поле базы данных количества настроено так, чтобы не принимать нулевые значения.

Кроме этого все должно работать.

Надеюсь это поможет.

Другие вопросы по тегам