Динамическое добавление полей в форму.

Нужно сделать следующую штуку: есть некая система сообщений. К сообщению можно прикладывать файлы. По-умолчанию в форме рендерится только одно поле для загрузки файла. Если пользователь хочет загрузить несколько файлов, он нажимает на кнопку/ссылку "Приложить еще один файл", появляется еще одно поле для загрузки файла и т.д.

Собственно, вопрос - как такое реализовать в Yii с минимальным количеством извращений? Может есть какие-то расширения?

Как я понимаю, сложностей здесь несколько:

  1. Валидация. Сами значения полей можно хранить в массиве в атрибуте модели (типа public $files), но как их валидировать?

  2. Вытекает из первого - как выводить сообщения об ошибках для каждого динамически добавленного поля?

Кто-нибудь делал подобное? Как выкручивались?

клонирования поля сделал бы через javascript, это не сложно, главное в имени поля не забыть указать []

файлики брал бы через CUploadedFile::getInstancesByName

с валидацией вроде легко, по циклу с файлам и проходите и по одному валидируете.

там же в цикле и ошибки сохранить можно в массиве.

а вот с выводом ошибок, думаю стоит отталкиваться от того что прислали, отправили 5 файлов, выводите потом 5 и используйте массив с ошибками, что бы знать какое поле подсветить.

если где ошибся, сори, но примерное направление узказал