-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

mintao escribió:
> I have an input field for an URL.
> When the form is submittet I'm using sfValidatorDoctrineUnique for
> this field. But BEFORE the validation I'd like to manipulate the url
> (host name to lower case, cut off any query strings).
> 
> Imagine the url "http://www.test.com/mysite"; is already in the
> database.
> When a user tries to submit the following url "http://www.Test.com/
> mysite/?q=foo" I'd like sfValitatorDoctrineUnique to recognize it as a
> unique violation.
> 
> What can I do?
> > 
You might:

 a) use sfValidatorCallback instead of sfValidatorDoctrineUnique and in
the callback function you could clean $value and then return whatsoever
sfValidatorDoctrineUnique returns for that clean input.
    Could be something like this:

    [php]
    // In your form's configure() method
    // ...
    $this->setValidator('url', new sfValidatorCallback(array(
        'callback' => array($this, 'validateUrl'),
        'required' => true
      )));
    //...

    // Outside configure(), declare the callback method
    public function validateUrl($validator, $value, $arguments)
    {
      // Clean $value
      $clean_value = clean($value);

      $v = new sfValidatorDoctrineUnique(array(
          'model'  => 'MyModel',
          'column' => 'url'
        ));
      return $v->clean($clean_value);
    }
    [/php]

  b) Implement your own sfValidatorBase subclass for doing pretty much
the same, but with the benefit of code reuse and modularization.

Hope this helps.

- --
José Nahuel Cuesta Luengo
Desarrollo | CeSPI - UNLP
<ncue...@cespi.unlp.edu.ar>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkqV1QkACgkQ2jTpOyePgAFtMwCfdbql1LtUoHPOU6W20xOtlJWl
mz4AoIquBTvQF3bve3uvstWLk8W+T+Na
=DcGt
-----END PGP SIGNATURE-----

--~--~---------~--~----~------------~-------~--~----~
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