Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/03/2011, 12h30   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2008
Messages : 111
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 111
Points : 12
Points : 12
Par défaut Formulaire hérité (doctrine)

Bonjour,

j'utilise l'admin generator pour le backend de mon projet. J'ai un module Person qui gère des utilisateurs. En plus de l'action _new je veux ajouter une action personnalisé qui me permette en plus d'initialiser une nouvelle personne, de renseigner son groupe et d'autres informations.

Voici le generator.yml :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
generator:
  class: sfDoctrineGenerator
  param:
    model_class:           CcPerson
    theme:                 admin
    non_verbose_templates: true
    with_show:             false
    singular:              ~
    plural:                ~
    route_prefix:          cc_person
    with_doctrine_route:   true
    actions_base_class:    sfActions
 
    config:
      actions:
        _save: { label: Sauvegarder }
        _save_and_add: { label: Sauvegarder et répéter l'opération }
      fields:
        firstname:  { label: "Prénom" }
        lastname:   { label: "Nom" }
        email:      { label: "Adresse email" }
        arrivaldate:    { label: "Date arrivée" }
        departuredate:  { label: "Date départ" }
        gender:         { label: "Sexe" }
      list:
        title: Liste des agents
        display:  [firstname,lastname,email]
        sort:     [lastname,asc]
        max_per_page: 30
        actions:
          newPersonFull : { label: "Nouvel agent (avec groupes, crédits, droits)", action: newpersonfull }
          _new: { label: "Nouvel agent (simple ajout)" }
        batch_actions: {}
        object_actions:
          _edit:         ~
      filter:
        display:  [firstname, lastname, email, arrivaldate, departuredate]
      form:    ~
      edit:
        title: Modifier l'agent %%firstname%% %%lastname%%
        actions:
          _list:         ~
          _save:         ~
      new:
        title: Ajouter un nouvel agent
        display:  [firstname, lastname, gender, email, arrivaldate, departuredate]
        actions:
          _list:         ~
          _save:         ~
          _save_and_add:  ~
J'ai donc mon action newpersonfull que j'ajoute dans mon controller :
Code :
1
2
3
4
5
class personActions extends autoPersonActions{
  public function executeNewpersonfull(sfWebRequest $request){
    $this->form = new CcPersonFullForm();
  }
}
Maintenant, je dois initilialiser mon formulaire CcPersonFullForm mais comme je veux via ce formulaire créer une nouvelle personne, je voudrais (si possible) ne pas réécrire ce qui est déjà disponible dans la classe BaseCcPersonForm.
  1. Que dois-je écrire dans CcPersonFullForm pour appeler les infos du formulaire de base ?
  2. Comment faire pour la vue ?

Voici mon formulaire qui ne marche pas.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
class CcPersonFullForm extends CcPersonForm{
  public function configure(){
    parent::configure();
    $this->setWidgets(array(
      'membergroup_list'        => new sfWidgetFormDoctrineChoice(array('model' => 'CcGroup', 'multiple' => true)),
      'creditFractionnement'    => new sfWidgetFormInputText(array(), array('size' => 4)),
      'exerciceFractionnement'  => new sfWidgetFormInputText(array(), array('size' => 4)),
      'creditConges'            => new sfWidgetFormInputText(array(), array('size' => 4)),
      'exerciceConges'          => new sfWidgetFormInputText(array(), array('size' => 4))
    ));
 
    $this->widgetSchema->setLabels(array(
      'membergroup_list'        => "Membre des groupes",
      'creditFractionnement'    => "L'agent aura un droit potentiel à",
      'exerciceFractionnement'  => "jours de fractionnement pour l'exercice",
      'creditConges'            => "À son arrivée, l'agent obtient un solde de",
      'exerciceConges'          => "jours de congés annuels pour l'exercice"
    ));
 
    $this->setDefaults(array(
      'creditFractionnement'    => 2,
      'exerciceFractionnement'  => date('Y'),
      'creditConges'            => 45,
      'exerciceConges'          => date('Y')
    ));
 
    $this->setValidators(array(
      'membergroup_list'        => new sfValidatorDoctrineChoice(array('model' => 'CcGroup', 'required' => true, 'multiple' => true)),
      'creditFractionnement'    => new sfValidatorInteger(),
      'exerciceFractionnement'  => new sfValidatorInteger(),
      'creditConges'            => new sfValidatorInteger(),
      'exerciceConges'          => new sfValidatorInteger()
    ));
  }
}
Siriru est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h37.


 
 
 
 
Partenaires

Hébergement Web