Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [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

Reply #1 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

Reply #2 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

Reply #3 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.

 
Page
  1. Re: pré traitement dans _beforeSaveCreate