Je programme panier dans Doctrine et Nette Framework. Il y a la méthode addItem
: (ajouter à la session panier)Doctrine panier après l'ordre d'ajout: undefined index
public function addItem($item) {
$cart = $this->getCartSection();
$product = $this->product_facade->getProduct($item['voucher_id']);
if (isset($cart->cart_items[$product->getId()])) {
$cart->cart_items[$product->getId()]['amount'] += $item['amount'];
} else {
$cart->cart_items[$product->getId()] = array(
'voucher' => $product,
'amount' => $item['amount']
);
}
}
Et il existe une méthode pour l'ordre d'ajouter db
public function add($creator, $data) {
$order = new Orders();
$order->setPrice($data['price']);
$order->setStatus($this->status_facade->getStatus(self::NEW_STATUS_ID));
$order->setPayment($this->payment_facade->getPayment($data->payment));
$order->setDate(new DateTime());
$order->setUser($creator);
foreach ($data['cart'] as $item) {
$order_product = new OrdersProduct();
$order_product->setQuantity($item['amount']);
$order_product->setProduct($item['voucher']);
$order->addItem($order_product);
}
$this->em->persist($order);
$this->em->flush();
}
J'obtiens l'erreur après un clic à bouton « ajouter à la commande »
Undefined index: 00000000659576f8000000004032b93e
Mais je sais où est une erreur. Il existe une méthode add
et cette méthode obtient l'entité Product de la session.
$order_product->setProduct($item['voucher']);
J'ai besoin de l'entité de produit dans la session parce que je veux compter le prix total dans le chariot. Si j'appelle méthode add setProduct
avec le numéro ou $item['voucher']->getId()
(cette variable est une entité de Product
)
$order_product->setProduct(
$this->product_facade->getProduct(4)
);
Il est OK, mais je ne sais pas, pourquoi je l'appelle entité produit de la session est wronk. C'est la même méthode avec le même résultat.
Pouvez-vous m'aider avec le problème? Savez-vous pourquoi Wronk est?
Merci, j'espère que vous me comprenez.
OK, il est mauvaise chose, sauf entité à la session. Dans les objets de sérialisation de session. Je dois enregistrer seulement l'ID à la session. – ondrusu