Два взаимосвязанных поля при валидации

Среди полей формы есть два, связанных между собой: 1) Загрузка фото с компьютера 2) Адрес URL загружаемой фотографии.

Каким образом можно сделать так, чтобы валидация проходила успешно, если успешно валидировано одно из полей? (т.е. пользователю не обязательно заполнять два поля)

Пока сделал флаг в модели, который устанавливается в true, если одно из полей валидировалось успешно. Но может быть есть более изящное решение?

А если второе содержит ошибки? А если оба заполнены и оба прошли валидацию, то загружаются обе картинки? А если пользователь ни одно не заполнил, то валидация пройдет? Ответы на эти вопросы помогут найти изящное решение :)

Попробуй этим полям дать имя нормальное, например форма FORMS, у этих полях будет:

FORMS[upl][file] и FORMS[upl][url]

, и уже в rules():


array('upl', 'Uploads')

Ну и сама функция:


public function Uploads($attribute,$params)

{

//Здесь уже смотри куда больше отдаёшь привилегию и выполняй проверку

}