Вопрос по валидаторам

Снова здрасьте:)

Такая у меня задача:

нужно проверять форму на пустоту отправки, причем не хочу делать в контроллере, хочу воспользоваться валидатором.

е нас есть замечательная - "required", но я хочу сделать так чтобы ожибка выдавалась при незаполненных ВСЕХ полях формы только а не при каком то конкретном.

Тоесть всем полям по отдельности МОЖНО быть пустыми, а всем сразу нельзя.

Есть ли в Валидаторе возможность типа не через запятую переметры перечислять а как нибудь типа "или" "или"?

Перерыл доку не нашел.

Подскажите плиз грамотное решение.

Нужно написать свой валидатор, что не так уж и сложно. Можно даже организовать валидацию в виде метода класса модели:




public function allEmpty($attribute, $params)

{

    if (empty($this->field1) && empty($this->field2) && empty($this->field3) && ...)

        $this->addError('field1', 'Заполните хотя бы это поле!'); // Вот тут правда не совсем понятно, какое поле считать неверно заполненным.

}



А затем в rules() добавить:




array('field1', 'allEmpty'),



Ух ты какое красивое решение!

Спасибо большое.

На самом деле поля у меня проверяются на правильность заполнения потом.

Просто не все поля обязательны для заполнения.

Пишу просто расширенный поиск по любому полю.

Так что чтобы не вводить каких то строгих соответствий вся форма мождет быть пустой кроме одного любого поля.

а уж если оно заполнено, то тогда проверяем правильность заполнения.

Вот такая у меня идеология.

Спасибо за грамотный совет, не думал что можно написать самому валидаторы.

То есть, получается, что для интересующих нас полей мы можем просто задать собственный метод…

Я, когда разбирал пример blog, обратил внимание на эту конструкцию:

public function rules()

{


    return array(


       ...


       ...


       ...


        // password needs to be authenticated


        array('password', 'authenticate'),


    );


}

Однако, подумал, что метод authenticate переопределяет какой-нибудь специальный

метод проверки пароля, а оказалось, что для любого поля/полей можно написать свой

метод валидизации.

andy_s - хороший и простой человек !