2013-05-21 2 views
2

У меня есть поле domain_name в моей форме, которая должна быть уникальной. Так что у меня уникальный валидатор вроде этого:Как отличить акценты в sfValidatorDoctrineUnique?

$this->validatorSchema->setPostValidator(
      new sfValidatorDoctrineUnique(
      array(
       'model' => 'Domain', 
       'column' => array('domain_name') 
      ), 
      array('invalid' => 'This domain already exist.'))); 

Но этот валидатор не признает акцентов. Например, оба доменных имени, example.fr и éxample.fr, для него одинаковы, поэтому он выдает ошибку.

Как я могу сделать разницу между обоими (с акцентами и без акцентов)?

+2

Проверьте свой sql-запрос при отправке формы, чтобы увидеть тот, который проверяет уникальность для столбца. Запустите его на phpmyadmin и посмотрите, получаете ли вы что-то. Это может быть проблемой для вашего mysql вместо доктрины (см. [This one] (http://stackoverflow.com/q/8024092/569101)). – j0k

+0

Как я могу сделать запрос, когда я отправлю форму? В панели инструментов symfony я не вижу этого ... – DOZ

+1

Вы можете заглянуть в файл журнала ('/ log/frontend_dev.log') или [включить запрос журнала в MySQL] (http://stackoverflow.com/ д/6479107/569101). – j0k

ответ

0

Если, как и j0k, это не проблема SQL, тогда вы можете захотеть создать свой собственный валидатор, следуя этому руководству: http://symfony.com/legacy/doc/more-with-symfony/1_4/en/05-Custom-Widgets-and-Validators#chapter_05_building_a_simple_widget_and_validator и использовать регулярное выражение, чтобы поймать акценты.

Смежные вопросы