пользовательский валидатор в Symfony - PullRequest
3 голосов
/ 14 июля 2011

Я хотел бы создать собственный валидатор для Symfony 1.4, например, проверить длину имени. Я знаю, что это существует, но я хотел бы иметь.

Я создаю /myapp/lib/validator/sfValidatorName.class.php

Должно быть там:

class sfValidatorName extends sfValidatorBase
{

  protected function configure($options = array(),
                                $messages = array()) {

      $this->addMessage('invalid', 'Invalid name!');
  }

  protected function doClean($value) {

  }
}

и как я могу добавить для этого свою функцию, например:

    if (count($letters) < 3) {
        return 'too small';
    } else if (count($letters) > 43) {
        return 'too long'; 
    } 

Ответы [ 2 ]

2 голосов
/ 14 июля 2011
  1. Открыть /lib/validator/sfValidatorString.class.php
  2. Смоделировать ваш валидатор после этого.
1 голос
/ 14 июля 2011

Поскольку ваш пример - именно то, что делает sfValidatorString, почему бы вам не взглянуть на его источник? По сути, вы просто выдаваете ошибку проверки с соответствующим кодом ошибки (например, недействительный, min_length, max_length, ...).

По умолчанию любой валидатор имеет ошибки 'invalid' и 'required', но вы можете добавить свою собственную с помощью addMessage ().

В этом конкретном примере гораздо разумнее выбрать настройку или расширение sfValidatorString.

...