remplir les valeurs d'une liste dans un form selon une des valeurs passées
Bonjour
Le titre est ronchon mais voici le problème.
En gros il s'agit de s'inscrire à un evenement. Dans ce formulaire d'inscription je passe l'utilisateur et l'evenement mais je voudrais que la liste des dates ne contienne que les dates comprise entre la date de debut de l'evenement et la date de fin.
Dans mon action j'ai ceci:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
$eventuser = new EventUser();
$eventuser->setEventId($request->getParameter('id'));
$eventuser->setUserId($this->getUser()->getGuardUser()->getId());
$event = EventTable::getinstance()->find($request->getParameter('id'));
$this->event = Doctrine_Core::getTable('Event')->getEvent($request->getParameter('id'));
$this->form = new CustomEventUserForm($eventuser); |
la liste des dates provient de l'objet event:
Code:
$this->event->getDatesArray()
j'ai essayé quelques trucs comme
Code:
1 2
| $schema = $this->form->getWidgetschema();
$schema['date'] = new sfwidgetformchoice(array('choices' =>$this->event->getDatesArray() )); |
qui me remplit bien les dates mais qui semble faire une erreur dans la fonction create
Code:
$this->processform ($request, $this->form);
Ensuite j'ai essayer ainsi :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
Action:
$eventuser = new EventUser();
$event = EventTable::getinstance()->find($request->getParameter('id'));
$eventuser->setEvent($event);
$eventuser->setUserId($this->getUser()->getGuardUser()->getId());
$this->event = Doctrine_Core::getTable('Event')->getEvent($request->getParameter('id'));
$this->form = new CustomEventUserForm($eventuser); |
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
| class EventUserForm extends BaseEventUserForm
{
public function configure()
{
$this->setWidgets(array(
'id' => new sfWidgetFormInputHidden(),
'event_id' => new sfWidgetFormDoctrineChoice(array('model' => $this->getRelatedModelName('Event'), 'add_empty' => false)),
'user_id' => new sfWidgetFormDoctrineChoice(array('model' => $this->getRelatedModelName('sfGuardUser'), 'add_empty' => true)),
'reserving_for' => new sfWidgetFormInputText(),
'ispaid' => new sfWidgetFormInputCheckbox(),
'isconfirmed' => new sfWidgetFormInputCheckbox(),
));
$event = $this->object->Event;
$schema = $this->getWidgetschema();
$schema['date'] = new sfwidgetformchoice(array('choices' => $event->getDatesArray() ));
$this->setValidators(array(
'id' => new sfValidatorChoice(array('choices' => array($this->getObject()->get('id')),
'empty_value' => $this->getObject()->get('id'), 'required' => false)),
'event_id' => new sfValidatorDoctrineChoice(array('model' => $this->getRelatedModelName('Event'))),
'user_id' => new sfValidatorDoctrineChoice(array('model' => $this->getRelatedModelName('sfGuardUser'), 'required' => false)),
'reserving_for' => new sfValidatorInteger(array('required' => false)),
'date' => new sfValidatorChoice(array('choices' => array($event->getDatesArray()),'required' => false)),
'ispaid' => new sfValidatorBoolean(array('required' => false)),
'isconfirmed' => new sfValidatorBoolean(array('required' => false)),
));
$this->widgetSchema->setNameFormat('event_user[%s]');
$this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);
$this->setupInheritance();
}
} |
qui lui ne me remplit rien...
(et vous l'aurez bien compris je suis un peu débutant)
a+