Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Je débute et suis confronté à un truc vraiment bête que je n'arrive pas a résoudre.
j'ai mis en place des formulaires qui fonctionnent très bien.
Exemple : mode édition -> je récupe les infos dans la bdd -> populate ( pour pré-remplir les champs ).
Je n'arrive pas a récupérer une valeur spécifique dans ma class formulaire...
Exemple : je veux juste afficher l'id de la fiche (en dehors de tout champs)... comment récupérer dans mon formulaire les valeurs transmises par populate ?
Le but est tout simplement d'utiliser Zend_Validate_Db_NoRecordExists ... j'ai besoin de récupérer l'id de l'enregistrement en question pour faire ma vérification.
Je sais c'est très bête mais parfois on bloque sur des conneries.
d'avance merci,
Anthony
Dernière modification par Anthony (04-03-2010 15:17:15)
Hors ligne
$form->id->getValue();
ou bien
$form->getElement('id')->getValue();
ou bien
$values = $form->getValues();
$id = $values['id'];
Hors ligne
nORKy a écrit:
$form->id->getValue();
ou bien
$form->getElement('id')->getValue();
ou bien
$values = $form->getValues();
$id = $values['id'];
En fait je me suis peut être mal fait comprendre.
J'essaye de récupérer les valeurs depuis la class du formulaire... et non pas depuis mon action.
Ma déclaration de Zend_Validate_Db_NoRecordExists est à l'intérieur même de ma class.
Si je fais un $this->getElement('id')->getValue(); (depuis ma class) je me retrouve bien entendu avec un jolie Call to a member function getValue() on a non-object.
Anthony
Hors ligne
ta class de formulaire étend bien Zend_Form ??
Si oui, alors, mon code fonctionne, tu remplace $form par $this
Hors ligne
nORKy a écrit:
ta class de formulaire étend bien Zend_Form ??
Si oui, alors, mon code fonctionne, tu remplace $form par $this
Merci pour vos réponses... mais ça ne fonctionne pas for me... mais peut être que je passe à coté d'un truc énorme :
class Gestion_Form_EditUtilisateur extends Zend_Form
{
public function __construct($options = null)
{
parent::__construct($options);
$this->setName('utilisateurs');
echo $this->id->getValue();
exit();
(...)
Résultat : Fatal error: Call to a member function getValue() on a non-object in ... EditUtilisateur.php on line 16
Tout le reste fonctionne nickel...
Anthony
Hors ligne
Bonjour Anthony,
Est ce que tu ne devrais pas recuperer l'ID a partir de ton action puis transmettre ca a la vue ?????
Conseil : en programmation, plus tu es concis et précis dans ce que tu dis et écris, mieux tu t'en sors.
Hors ligne
désolé si j'ai pas été suffisamment clair... j'ai beaucoup a assimiler pour mon initiation au framework et je suis un peu novice en orienté objet.
Et bien pour pallier à mon problème je transmet l'id directement à la class du formulaire (depuis mon action) :
$form = new Gestion_Form_EditUtilisateur(null,$mon_id); <-- l'appel de la class
La class :
class Gestion_Form_EditUtilisateur extends Zend_Form
{
public function __construct($options = null, $id = null) <-- id que j'envoie depuis mon action
...
Mais je trouve ça un peu "bâtard" ... je n'ai pas trouvé un truc plus simple. D'autant plus que Zend_Form semble refuser qu'on lui transmette des attributs (par exemple avec un $form->id_user = 10;) Dans ce cas il me renvoie : Only form elements and groups may be overloaded; variable of type "integer" provided
J'avoue me perde parce que sinon tout fonctionne.
Anthony
Hors ligne
Bonjour,
tu peux essayer avec cette forme : public function __construct($array_contenant_mes_valeurs, $options = null)
Cependant,il serait intéressant de jeter un coup d'œil sur cette page très riche : http://3b-online.net/articles.php?num=22
Je serai très curieux de savoir ce que tu comptes faire avec l'ID que tu as récupéré. C'est juste pour voir s'il n'existe pas une autre solution plus adéquate
Merci
Dernière modification par patiecco (04-03-2010 13:46:55)
Hors ligne
patiecco a écrit:
Je serai très curieux de savoir ce que tu comptes faire avec l'ID que tu as récupéré. C'est juste pour voir s'il n'existe pas une autre solution plus adéquate
Merci
C'est très simple. A l'intérieur de ma class formulaire j'ai un test Zend_Validate_Db_NoRecordExists
Pour faire le test j'ai besoin de savoir l'id de l'utilisateur en question (pour l'exclure de ma validation).
La personne peut choisir un login mais celui ci est unique : le login en question doit donc être accepté si c'est déjà celui de mon utilisateur... et refusé si c'est celui d'un autre.
Anthony
Hors ligne
Pages: 1