- 1
[Opened] [RESOLU] pré traitement dans _beforeSaveCreate
Posted by deeten on 10/17/2009 00:28
Bonjour, Je dois insérer un enregistrement dans une table à partir d'un formulaire CRUD. Le code (et clé primaire) de l'enregistrement est généré à partir d'un algorithme. Seulement, j'ai une erreur retournée par le DAO. Voici mon code
protected function _beforeSaveCreate($form, $form_daorec) { $util = jClasses::getService ("utils"); $libelle = (string) $this->param('libplace'); // generation du code $vcodep = $util->geneCode($libelle); // Recuperation du control et affectation de la valeur pour le DAO $jCtrl = $form->getControl('codep'); $jCtrl->setDataFromDao($vcodep,'string'); $form->addControl($jCtrl); }
J'obtiens la requette suivante :
INSERT INTO `sp_base_pays` ( `codep`,`codepays`,`libplace`,`nbclub`,`datecrea` ) VALUES ( '', 'al', 'Bundesliga', 20, NULL )
En d'autres terme la valeur n'a pas été affectée pour codep alors qu'elle est bien alimentée.
A noter que le champ codep est caché dans le formulaire CRUD.
Ma question est : qu'est ce qui ne vas dans mon code. Merci d'avance pour vos réponses.
[Opened] Re: pré traitement dans _beforeSaveCreate
Posted by deeten on 10/17/2009 03:13
J'ai rajouté dans mon code ceci :
protected function _beforeSaveCreate($form, $form_daorec) { $util = jClasses::getService ("utils"); $libelle = (string) $this->param('libplace'); // generation du code $vcodep = $util->geneCode($libelle); // Recuperation du control et affectation de la valeur pour le DAO $jCtrl = $form->getControl('codep'); $jCtrl->setDataFromDao($vcodep,'string'); $form->addControl($jCtrl); $form->saveToDao('master_admin~base_pays'); }
Maintenant j'ai dans ma base et pour la table concernée 2 records :
Un avec le champ codep bien assignée avec la valeur de $vcodep
Un autre avec une valeur a vide pour le champ codep comme précédemment indiquée.
Il décidément un truc qui cloche!
[Opened] Re: pré traitement dans _beforeSaveCreate
Posted by bballizlife on 10/17/2009 13:59
Et pourquoi n'affecte-tu pas directement $form_daorec->codep ? C'est ici que tu as ton objet record qui sera utilisé par la factory dao.
N'importe comment c'est dans la doc
[Opened] [RESOLU] Re: pré traitement dans _beforeSaveCreate
Posted by deeten on 10/17/2009 20:45
Merci bbalizlife, j'avais complètement zapper ce paramètre. En effet en l'utilisant ça fonctionnel nickel.
- 1