Bonsoir tout le monde,

Je suis en train de me battre depuis pas mal d'heures avec le sfWidgetFormDateRange ainsi que son ami le validateur, et j'ai besoin de votre aide...

J'ai une classe Doctrine Absence qui ce compose de cette facon:
Code yaml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Absence:
  columns:
    resident_id: {type: integer, notnull: true}
    why: {type: string(255), default: NULL}
    begin_at: {type: date, notnull: true}
    end_at: {type: date, notnull: true}
  relations:
    Resident: {local: resident_id, type: one, foreign: id, foreignAlias: Absences, foreignType: many, onDelete: CASCADE}

Comme vous le remarquez, j'ai une date de debut et de fin, ce qui équivaut a un dateRange!

De ce fait, a la place des champs begin_at et end_at, je fais un champ 'range' de cette facon:

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        $this->widgetSchema['range'] = new sfWidgetFormDateRange(array(
            'label'         => 'période',
            'from_date'     => new sfWidgetFormDate(),
            'to_date'       => new sfWidgetFormDate(),
            'from_field'    => 'begin_at',
            'to_field'      => 'end_at',
            'template'      => 'du %from_date% <br/> au %to_date%'
        ));
 
        $this->validatorSchema['range'] = new sfValidatorAbsenceRange(
                array(
                    'from_date' => new sfValidatorDate(),
                    'to_date'   => new sfValidatorDate(),
                ),
                array(
                    'invalid'   => 'la date de début doit être inferieur à la date de fin'
                )
        );

Cela fonctionne a part pour un point (et d'autres mes c'est une autre histoire!), quand j’édite une absence existante, les dates de début et fin ne sont pas preremplis dans le formulaire!

Je suppose que c'est du au nom du champ qui n'est plus le même (range_from / range_to), mais j'ai beau google it, je ne trouve pas de solution...

Si quelqu'un a la solution ou un exemple complet de A-Z me montrant comment me servir de ce truc, je suis preneur!

Voila voila j'ai tout dis, ouf! Ça soulage.

Merci d'avance!

Sullivan