Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 03-03-2010 07:14:58

Anthony
Nouveau membre
Date d'inscription: 03-03-2010
Messages: 5

[Zend_Form][1.10.1] Récuperer données populate

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

 

#2 03-03-2010 08:13:22

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Zend_Form][1.10.1] Récuperer données populate

$form->id->getValue();

ou bien
$form->getElement('id')->getValue();

ou bien
$values = $form->getValues();
$id = $values['id'];


----
Gruiiik !

Hors ligne

 

#3 03-03-2010 09:48:36

Anthony
Nouveau membre
Date d'inscription: 03-03-2010
Messages: 5

Re: [Zend_Form][1.10.1] Récuperer données populate

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

 

#4 03-03-2010 14:16:02

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Zend_Form][1.10.1] Récuperer données populate

ta class de formulaire étend bien Zend_Form ??
Si oui, alors, mon code fonctionne, tu remplace $form par $this


----
Gruiiik !

Hors ligne

 

#5 03-03-2010 15:11:11

Anthony
Nouveau membre
Date d'inscription: 03-03-2010
Messages: 5

Re: [Zend_Form][1.10.1] Récuperer données populate

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

 

#6 04-03-2010 10:40:26

patiecco
Membre
Date d'inscription: 26-02-2010
Messages: 13

Re: [Zend_Form][1.10.1] Récuperer données populate

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

 

#7 04-03-2010 10:54:55

Anthony
Nouveau membre
Date d'inscription: 03-03-2010
Messages: 5

Re: [Zend_Form][1.10.1] Récuperer données populate

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

 

#8 04-03-2010 13:26:44

patiecco
Membre
Date d'inscription: 26-02-2010
Messages: 13

Re: [Zend_Form][1.10.1] Récuperer données populate

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

 

#9 04-03-2010 14:29:37

Anthony
Nouveau membre
Date d'inscription: 03-03-2010
Messages: 5

Re: [Zend_Form][1.10.1] Récuperer données populate

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

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages