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

  [Opened] Petite proposition pour jFormsBase::saveToDao

Posted by galves on 06/22/2006 15:25

Après avoir sauvegardé un form dans une dao, on a très souvent besoin de la pkey de l'élément inséré (souvent calculée par la base).

Ma propale consiste à retourner la valeur de cette pkey sur une sauvegarde. Le patch est le suivant (ajout des lignes commençant avec +, dans le fichier ~/lib/forms/jFormsBase.php

   public function saveToDao($daoSelector){
      $dao = jDAO::create($daoSelector);
      $daorec = jDAO::createRecord($daoSelector);
      foreach($this->_controls as $name=>$ctrl){
          $daorec->$name = $this->_container->datas[$name];
      }
 +    $pkey='';
      if($this->_container->userId){
         $daorec->setPk($this->_container->userId);
         $dao->update($daorec);
 +       $form_datas = $this->getDatas();
 +       $pkey=$form_datas[$this->_container->userId];
                                                                                                                                                             
      }else{
         $dao->insert($daorec);
 +       $conn = jDb::getConnection();
 +       $pkey = $conn->lastInsertId();
      }
 +    return $pkey;
   }

Des avis/remarques ?

  [Opened] Re: Petite proposition pour jFormsBase::saveToDao

Reply #1 Posted by galves on 06/23/2006 16:35

Je propose également d'autres ajouts à cette classe, qui facilitent son emploi directement dans les templates:

 public function value($name) {
        if (isset($this->_container->datas[$name]))
                return $this->_container->datas[$name];
        return '';
        }
 public function pkeyValue(){return $this->value($this->_container->userId);}

Ce qui permet également d'alléger la proposeition précédente en :

 +    $pkey='';
      if($this->_container->userId){
         $daorec->setPk($this->_container->userId);
         $dao->update($daorec);
 +       $pkey=$this->pkey();
                                                                                                                                                             
      }else{
         $dao->insert($daorec);
 +       $conn = jDb::getConnection();
 +       $pkey = $conn->lastInsertId();
      }
 +    return $pkey;
   }

  [Opened] Re: Petite proposition pour jFormsBase::saveToDao

Reply #2 Posted by laurentj on 08/22/2006 10:24

j'ai plus trop jForms en tête, va falloir que je vois ça plus tard en détails :-)

  [Opened] Re: Petite proposition pour jFormsBase::saveToDao

Reply #3 Posted by xian on 10/31/2007 15:28

si y'a eu du nouveau là dessus, ça m'intéresse ;)

  [Opened] Re: Petite proposition pour jFormsBase::saveToDao

Reply #4 Posted by bballizlife on 10/31/2007 16:01

Petite proposition moi aussi ;)

ouvrir un ticket et y associer le patch. C'est fait pour ça et ça sera nettement plus simple pour suivre le débat de ta proposition et le cas échéant accepter ton patch.


N'importe comment c'est dans la doc

  [Opened] Re: Petite proposition pour jFormsBase::saveToDao

Reply #5 Posted by xian on 10/31/2007 17:48

Hé hé, bon je viens d'aller consulter le code et on dirait bien que la modif de galves a déjà été prise en compte...

désolé pour le dérangement...

 
Page
  1. Petite proposition pour jFormsBase::saveToDao