Bonjour,
je suis actuellement de coder un panier de commande, qui comportera les lignes des articles et donc le numero de commande identique.
Le probleme c'est que j'arrive pas à garder ce numero de commande que j'ajoute aleatoirement.
mon code du controller commandepaniers :
public $numCmd;
public $attribNum = false;
public function index(){
if(isset($numCmd) or $attribNum == false){
$numCmd = rand();
while($this->FntCommandePanier->findByIdCom($numCmd)){
$numCmd = rand();
}
$attribNum = true;
}
Merci.
Si tu veux que cela soit attaché à la session de l'utilisateur courrant , il faut le mettre en session.
Salut,
Juste avant, je te donne une méthode pour avoir un numéro unique, cela simplifiera déjà grandement ta méthode index je penses.
Grace au uniqid() tu n'auras plus besoin de checker en base si il existe (donc gain en performance), tu seras sur et certains que celui ci sera unique car il se base sur le temps en seconde de mémoire.
Ensuite je penses que la meilleure solution, c est de mettre en SESSION ton numCmd.
Exemple:
public function index(){
if($this->Session->check('numCmd') == false) { // adapte car je ne me souviens plus trop de la syntaxe
$numCmd = "COMMANDE-" . uniqid();
$this->Session->write('numCmd', $numCmd);
}
debug($this->Session->read('numCmd'));
}
Bonjour,
c'est un problème de portée de variable.
Avec $this->numCmd dans la méthode, cela devrait aller mieux
Bonjour,
merci pour la réponse :), malheureusement ça ne marche pas entre temps j'ai essayer de le mettre dans mon appcontroller du coup j'ai réaliser qu'il falais utiliser ces $this-> mais ça change a chaque actualisation de la page le numéro attribué, du coup j'ai remis ça dans mon qui ne fonctionne toujours pas controller panier :
public $numCmd;
public $attribNum = false;
public function index(){
if(isset($this->numCmd) or $this->attribNum == false){
$this->numCmd = rand();
while($this->FntCommandePanier->findByIdCom($this->numCmd)){
$this->numCmd = rand();
}
$this->attribNum = true;
}
debug($this->numCmd);