Ciao Richtermeister, I wrote the validator as a Callback:
<?php /** * Listino form. * * @package SuperAdmin * @subpackage form * @author Your name here * @version SVN: $Id: sfPropelFormTemplate.php 10377 2008-07-21 07:10:32Z dwhittle $ */ class ListinoForm extends BaseListinoForm { public function configure() { $this->widgetSchema['DataInizioValidita'] = new sfWidgetFormI18nDate (array('culture' => 'it_IT', 'month_format' => 'short_name')); $this->validatorSchema->setPostValidator(new sfValidatorCallback (array('callback' => array($this, 'checkSoglie')))); } public function checkSoglie($validator, $values) { $trovataSoglia = false; <snip> if ($values['Importo'.$i] >= $values['Importo'.($i - 1)]) { throw new sfValidatorError($validator, "Ogni importo deve essere inferiore al precedente. (Importo$i)"); return $values; } } return $values; } } and I put it in lib/form/<model>Form.class.php. It's form and problem specific, so I'm not going to reuse the logic anywhere in the project. I wonder if this is the right place where to put the code!? Now I'm looking for a way to highlight the wrong fields (with a red border, like the standard validators do) to the user... Stefano On 12 Ago, 20:34, Richtermeister <nex...@gmail.com> wrote: > Hey Stefano, > > I would write a custom post-validator. A post validator is given the > entire data array, so from there you can just loop over the array and > see if the values keep increasing.. > > Hope this helps, > Daniel > > On Aug 12, 8:57 am, Stefano <stef...@sancese.com> wrote: > > > Hi, > > > I'm developing my first web-application and I'm still RTFM (Reading > > The Fabulous Manuals), but I need a little help with a form > > validation. > > > For this application I'm using the Admin Generator. > > > The form contains 5 target fields: T1, T2, T3, T4, T5; every target > > must be greater than the previous: T1 < T2 < T3 < T4 < T5. > > > But only T1 is required while the other targets can be empty. > > > If a target is empty all the next ones must be empty. > > > So: > > T1= 100, T2= 200, T3=empty, T4=empty, T5=empty is valid, > > but: > > T1=100, T2=empty, T3=200, T4=empty, T5=empty is NOT valid. > > > I'm putting some code in lib/form/<model>Form.class.php: > > > class ListinoForm extends BaseListinoForm > > { > > public function configure() > > { > > $this->validatorSchema->setPostValidator(new sfValidatorAnd(array > > (new sfValidatorSchemaCompare('T1', > > sfValidatorSchemaCompare::LESS_THAN, 'T2')))); > > } > > > } > > > but I don't know how to test if a field is empty and I'm afraid that > > the resulting instruction will be very hard to read. > > > Any hint? > > > TIA > > > Stefano > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---