bien le bonjour,
je tourne en rond depuis quelques heures.
J'ai fais un système de panier pour un eCommerce, en utilisant les variables de Session du User (get et set Attribut)
myUser.class.php
Basket.class.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $basket = $this->getAttribute('basket', array()); if($basket==null) $basket = new Basket(); $basket->addItem(1, $produit); $this->setAttribute('basket', $basket);
BasketObject.class.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 ... function addItem($qty, $product) { $ok = false; foreach ($this->items as $id => $item) { if ($item->getProduit()->getId() == $product->getId()) { if ($this->getItemQty($id) > 0) { $this->setItemQty($id, $this->getItemQty($id) + $qty); } else { $this->items[$id] = new BasketObject(); $this->items[$id]->setProduit($product); $this->items[$id]->setQuantite($qty); } $ok = true; break; } } if (!$ok) { $id = $this->getNbLineItems(); $this->items[$id] = new BasketObject(); $this->items[$id]->setProduit($product); $this->items[$id]->setQuantite($qty); } } ...
Jusque la pas de soucis.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 class BasketObject extends BaseBasketObject { function getPrice() { return $this->Produit->getPrix(); } function getWeight() { return "0.00"; } function extendedPrice() { return ($this->quantite * ($this->getPrice() * (1 - $this->reduction))); } function discountedAmount() { return ($this->getPrice() * $this->reduction); } }
j'arrive a afficher via un component qui lis monAttribut('basket') les différents éléments de mon panier
Le problème apparais lorsque sur une page je veux afficher ls produits de la db.
actions.class.php
A partir de ce moment la, j'ai une erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public function executeShow(sfWebRequest $request) { $this->pager = new sfDoctrinePager( 'produit', sfConfig::get('app_max_prod_on_artisan') ); $this->pager->setQuery($this->artisan->getActiveProduitQuery()); $this->pager->setPage($request->getParameter('page', 1)); $this->pager->init(); }
(A savoir que mon objet produit est i18n sur le champ libelle.)SQLSTATE[42S22]: Column not found: 1054 Unknown column 'p.libelle' in 'field list'
Partager