Проблема с проверкой формы Symfony - PullRequest
3 голосов
/ 23 января 2010

Мне не видно, что я могу делать не так с проверкой формы Symfony 1.4. По сути, все, что я просто хочу, это чтобы все четыре условия были правильно учтены (обязательно, минимальная длина, максимальная длина, регулярное выражение). Это на самом деле работает, но для «обязательного» условия он не отображает мое сообщение об ошибке и вместо этого просто говорит «Обязательный». Есть ли способ получить МОЕ сообщение об ошибке, чтобы показать?

'username' => new sfValidatorAnd(array(
    new sfValidatorString(
        array('required' => true, 'min_length' => 4, 'max_length' => 20), 
        array('required' => 'Please enter a username.', 'min_length' => 'Your username must have at least 4 characters.', 'max_length' => 'Your username cannot be longer than 20 characters.')
        ),
    new sfValidatorRegex(
        array('pattern' => '/^[A-z0-9]*$/i'),
        array('invalid' => 'Your username can only have letters (A-Z) or numbers (0-9).')
        ),
)),

Еще одна вещь, если я удаляю валидатор Regex и просто превращаю его в обычный однострочный валидатор String, мое специальное сообщение об ошибке действительно отображается!?

Любой

Заранее спасибо.

1 Ответ

6 голосов
/ 23 января 2010

Я заметил ту же проблему около двух недель назад и нашел решение - просто переместите ваше сообщение в sfValidatorAnd объявление:

'username' => new sfValidatorAnd(array(
    new sfValidatorString(
        array('required' => true, 'min_length' => 4, 'max_length' => 20), 
        array( 'min_length' => 'Your username must have at least 4 characters.', 'max_length' => 'Your username cannot be longer than 20 characters.')
        ),
    new sfValidatorRegex(
        array('pattern' => '/^[A-z0-9]*$/i'),
        array('invalid' => 'Your username can only have letters (A-Z) or numbers (0-9).')
        ),
), array(), array('required' => 'Please enter a username.')),

Это помогло мне, надеюсь, это поможет и вам.

...