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

  [Opened] dao et valeur default

Posted by chris on 07/24/2007 00:56

Bonjour,

Peut-être n'ai-je pas suffisamment cherché, auquel cas je vous prie de m'en excuser, mais ne serait-il pas judicieux de pouvoir avoir un attribut default dans les property d'une DAO afin d'enregistrer une valeur par défaut si absente ?

En fait, dans ma base MySQL, j'ai des valeurs par défaut pour des champs int, mais cette valeur ne me semble pas prise en compte à cause du fait que si aucune valeur n'est saisie dans le formulaire, il semble que ce soit 0 qui soit affecté.

À moins qu'il y ait une autre solution à côté de laquelle je passe...

  [Opened] Re: dao et valeur default

Reply #1 Posted by laurentj on 07/24/2007 09:47

C'est une limitation en effet : il faut renseigner TOUTES les propriétés d'un record de dao. Ajouter un attribut default, pourquoi pas, mais ce qui me gène est : comment savoir si une propriété a été renseigné ou pas dans l'objet ? À la limite, on peut tester si sa valeur est le null de PHP, mais ce n'est valable que pour les propriétés qui ne sont pas mappés sur des champs dont la valeur peut être nulle.

Ou alors il faut complètement revoir l'implémentation d'un record (avec des méthodes magiques par exemple...), mais on risque de perdre un peu en perf. Tout patch bienvenu. Je t'invite à créer un ticket à ce sujet.

  [Opened] Re: dao et valeur default

Reply #2 Posted by bballizlife on 07/24/2007 09:58

Et insertmotif (insertpattern) ?


N'importe comment c'est dans la doc

  [Opened] Re: dao et valeur default

Reply #3 Posted by bballizlife on 07/24/2007 15:05

Sur une property, tu définis un attribut insertmotif="foo" et si tu n'affecte pas cet élément dans ta dao lors de l'insert, il prendra la valeur définie.

Je m'en sers pour des champs date de mysql. Par exemple dans une table, un champ created_at DATE, et dans ma dao sur la property created_at, je spéficie l'attribut insertmotif="NOW()". Dans mon code, lors de l'insert de la dao, je ne donne pas de valeur à created_at et c'est la valeur NOW() qui lui sera donnée automatiquement.

Si ça peut t'aider ;)


N'importe comment c'est dans la doc

  [Opened] Re: dao et valeur default

Reply #4 Posted by laurentj on 07/24/2007 17:19

Ah, mais cela voudrait dire que je ne peux JAMAIS affecter une valeur à ce champ dans ce cas, non ?

Oui. sauf à mettre comme valeur une condition IF en SQL.. mais bon..

je me demande s'il est alors raisonnable de créer un ticket pour ça

ne te gène pas :-)

 
Page
  1. Re: dao et valeur default