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

  [Opened] jDao : Champs dans une Clef Primaire et insertpattern

Posted by yan_vn on 05/18/2009 06:13

Bonjour,

Je viens juste de me mettre à Jelix et après avoir réalisé quelques tutos je me mets à voir comment utiliser le framework pour mes propres besoins.

J'ai une page dont la clef primaire est composée de quatre champs dont une date (la date de modification). J'aimerai que cette date de modification soit automatiquement mise à jour, et pour cela j'utilise les attributs insertpattern et updatepattern avec comme valeur now().

Lors de la création ou de la modification d'un enregistrement, ces attributs ne sont pas pris en compte. Cela marche bien avec un autre champ date qui n'est pas dans la clef primaire. J'ai essayé avec un formulaire "créé à la main" ou avec jDaoCRUD. Si je supprime ce champ "date de modification" de ma clef primaire, là ça marche...

Est-ce un bogue ou une restriction d'usage ? Y a-t-il un moyen de contourner à votre avis ?

Merci d'avance pour votre aide. Yannick.


Yannick DEVOS - http://www.nature-mekong.com/

  [Opened] Re: jDao : Champs dans une Clef Primaire et insertpattern

Reply #1 Posted by foxmask on 05/18/2009 13:31

Bonjour,

en SQL pur on peut definir une valeur par defaut à la colonne de son choix.

ceci au cas où les *pattern poseraient probleme


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

  [Opened] Re: jDao : Champs dans une Clef Primaire et insertpattern

Reply #2 Posted by foxmask on 05/18/2009 14:53

Plutot que de passer par un champ hidden on peut tout aussi bien faire dans son controleur :

 $record = jDao::createRecord('foo~bar');
 $record->date_created = time();

 $dao = jDao::get('foo~bar');
 $pk = $dao->insert($record);

par exemple, ou encore (mieux)

 recuperation des données saisies dans le formulaire et soumission des données saisies à la DAO + sauvegarde des données

 $result = $form->prepareDaoFromControls('foo~bar');
 $result['daorec']->date_create = time();
 ...
 $result['dao']->insert($result['daorec']);

PS : il me semble qu'on peut mettre des fonctions NOW() ou TIME() dnas les colonnes des tables des bases MySQL non ?


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

 
Page
  1. jDao : Champs dans une Clef Primaire et insertpattern