Search code examples
symfony1symfony-1.4validation

Don't show column name when validator returns an error


I have the following code:

$this->form->setValidators(array(
    'email'   => new sfValidatorAnd(
        array(
            new sfValidatorEmail(array(), array(
                'invalid' => 'Enter a valid email address.',)),
            new sfValidatorDoctrineUnique(array(
                'model'=>'Users',
                'column'=>'email',
                ), array(
                'invalid' => 'This email is already being used.',
                )),
        ),
        array(),
        array(
                'required' => 'Required',
        )
    ),
//...

and when the email is not unique, it returns the following error: email: This email is already being used. But I don't want that email: in front of the message.
Is there a way I can stop showing the column name?

Can I get some help?


Solution

  • This is a special of sfValidatorDoctrineUnique, so it may be necessary to test uniqueness over more than one column.

    You have to override the doClean() method to prevent this line (at the end) :

    throw new sfValidatorErrorSchema($this, array($columns[0] => $error));    
    

    Further informations :