developer.jelix.org is not used any more and exists only for history. Post new tickets on the Github account.
developer.jelix.org n'est plus utilisée, et existe uniquement pour son historique. Postez les nouveaux tickets sur le compte github.

Opened 13 years ago

Closed 13 years ago

Last modified 12 years ago

#497 closed new feature (fixed)

jFormsBase : prepareDaoFromControls

Reported by: bastnic Owned by: bastnic
Priority: normal Milestone: Jelix 1.1 beta 1
Component: jelix:forms Version: 1.0.2
Severity: normal Keywords:
Cc: Blocked By:
Blocking: Documentation needed: no
Hosting Provider: Php version:

Description

La méthode saveToDao de jFormsbase est très pratique, mais on peut vouloir profiter du préremplissage qu'il effectue en fonction d'un formulaire sans pour autant directement vouloir l'insérer en base de données.

Ainsi une nouvelle méthode dans jFormsBase qui retournerait un dao préremplit qui nous permettrait par la suite de pouvoir le modifier et faire nous-même l'insertion. Ca peut-être utile si on a 40 champs qui sont remplis via un formulaire et seulement quelques uns calculés. Ca évite de se taper à la main les 40 champs...

De plus saveToDao pourrait faire appel à cette méthode prepareDaoFromControls et se contenter d'insérer et retourner l'id.

Attachments (1)

patch-497.diff (2.4 KB) - added by bastnic 13 years ago.
pas taper

Download all attachments as: .zip

Change History (7)

comment:1 Changed 13 years ago by bastnic

  • Owner set to bastnic
  • Status changed from new to assigned

comment:2 Changed 13 years ago by bastnic

  • review set to review?

Ce n'est vraiment pas un domaine que je maîtrise donc je ne suis pas sûr des conséquences que cela peut avoir. Mais dans l'idée moi j'aime bien la fonctionnalité offerte par ce patch.

On pourrait éviter le compact en créant plusieurs méthodes, mais là c'était juste pour faire simple et montrer l'idée.

Je l'utilise comme ça :

extract($form->prepareDaoFromControls($this->dao_comment, null, $this->dbProfil), EXTR_PREFIX_ALL, "form");
$form_daorec->id_article = $this->param('id_article');
$form_dao->insert($form_daorec);

Dans mon controller, à la place de l'habituel saveToDao. Je peux ainsi définir le contenu d'autres champs que ceux remplis par formulaire très simplement.

Je suis à peu près sur que c'est une horrible façon de faire donc je demande surtout l'avis de gens bien meilleurs que moi :p. Merci d'avance.

Changed 13 years ago by bastnic

pas taper

comment:3 Changed 13 years ago by laurentj

  • Milestone set to Jelix 1.1
  • review changed from review? to review+

La patch est correct, mais il y a une chose qui me gène, c'est le retour sous forme d'array... Mais je ne vois pas d'autres solutions plus efficace pour l'instant...

comment:4 Changed 13 years ago by bastnic

  • Resolution set to fixed
  • Status changed from assigned to closed

fixed in the trunk.

we can clean it in the future :p.

comment:5 Changed 13 years ago by laurentj

  • Documentation needed set
Note: See TracTickets for help on using tickets.