Hi there,

I have a form with an embedded form, wich can have N embedded forms:

parentForm:
  wrapperForm:
    form_1
    form_2
    ...
    form_n

Nice. The problem is that this child forms have a date field (actually a
hidden field: sfWidgetFormInputHidden) which I must check so that:
form_1.date <= form_2.date <= ... <= form_n.date. So, I have opted to use a
callback postValidator in "parentForm". I set this in parentForm configure()
method:

$this->validatorSchema->setPostValidator(new sfValidatorCallback(array(
  'callback' => array($this, 'validateSchema'),
)));

And this is my "validateSchema" method:

public function validateSchema(sfValidatorBase $validator, array $values)
{
  $previous_date = 0;
  $forms = $this->embeddedForms['wrapperForm']->getEmbeddedForms();

  foreach ($values['wrapperForm'] as $form_id => $form) {
    if (strtotime($form['date']) < $previous_date) {
      *// ADD ERROR MESSAGE*
    } else {
      $previous_date = strtotime($form['date']);
    }
  }

  return $values;
}

Knowing that to access one of the child forms object, we can use
$forms[$form_id] within the for loop. How the hell can I add an error
message to the date field?? :( I don't want a global error, I just want the
error next to it's corresponding field. Any idea would be greatly
appreciated.

Thank you,
Asier.

-- 
If you want to report a vulnerability issue on symfony, please send it to 
security at symfony-project.com

You received this message because you are subscribed to the Google
Groups "symfony users" group.
To post to this group, send email to symfony-users@googlegroups.com
To unsubscribe from this group, send email to
symfony-users+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/symfony-users?hl=en

Reply via email to