Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
je cherche comment récupérer une occurrence d'une table ayant une clé composée.
Ce que je cherche à faire :
un tableau avec en option un bouton "clore" qui permet de modifier le statut d'un enregistrement via un contrôleur. Classique. Cependant, là où je coince, c'est que ma table possède une clé composée (numero et date)
voici le code (allégé)
foreach ($this->avurnavs as $avnav) { ?> <tr> <td><?php echo $avnav->numerotation_avurnav.'-'.$avnav->annee_avurnav; ?></td> <td><?php echo $avnav->message ; ?> </td> <td><?php echo $avnav->date_emission_avurnav ; ?></td> (...) <td><?php echo $avnav->trigramme_redacteur ; ?></td> <td><a href="<?php echo $this->url(array('controller'=>'avurnav', 'action'=>'edit', 'id'=>($avnav->numerotation_avurnav)));?>" title="Clore l'avurnav"> <center><button class="btn btn-default btn-danger btn-primary" type="button">Clore</center></a></td> </tr>
Là où je bloque quelque peu, c'est dans la partie $this->url(array('controller'=>'avurnav',
'action'=>'edit', 'id'=>($avnav->numerotation_avurnav)))
Que mettre dans l'id pour avoir à la fois le numero et la date ?
Merci d'avance en espérant avoir été assez clair.
Hors ligne
bonjour,
au niveau de la vue on peut concaténer numero à date($avnav->numerotation_avurnav+date) pour reconstituer la clé composite.
Hors ligne
En fait, il me faudrait l'inverse. C'est à dire depuis la vue, pouvoir récupérer dans un controleur la clé composite pour traiter l’occurrence et la mettre à jour. Par exemple récupérer le numero 1 datant du 05/12/2012 et non le 1 du 06/12. En mettant seulement le numero, je récupère les 2 enregistrements (ce qui est normal).
Hors ligne
roswellenshort a écrit:
En fait, il me faudrait l'inverse. C'est à dire depuis la vue, pouvoir récupérer dans un controleur la clé composite pour traiter l’occurrence et la mettre à jour. Par exemple récupérer le numero 1 datant du 05/12/2012 et non le 1 du 06/12. En mettant seulement le numero, je récupère les 2 enregistrements (ce qui est normal).
dans ce cas il s'agit de 2 paramètres(numéro et date) qui doivent être récupérés et non seulement du numéro car les 2 paramètres interviendront dans la clause where de la requête pour pouvoir mettre à jour qu'une seule occurrence.
Dans ton helper de vue ($this->url) il te faut ajouter un second paramètres( date)
[lang=php] <a href="<?php echo $this->url(array('controller'=>'avurnav', 'action'=>'edit', 'id'=>1, 'date'=>'05-12-2012'));?>" edit </a>
Ensuite dans le controlleur associé tu peux récupérer les 2 paramètres GET pour faire le traitement desiré
[lang=php] $request=$this->getRequest(); $id=$request->getParam('numero'); $date=$request->getParam('date');
Hors ligne
Merci Amiss. C'est exactement ce qu'il me fallait. Je ne parvenais pas à trouver la syntaxe.
Hors ligne
de rien
Hors ligne