Загрузка файлов в backend (админке) Symfony 1.2
Итак в symfony < версии 1.2, для того чтоб добавить поле загрузки файлов в backend, достаточно было внести изменения в generator.yml, т.е. изменить тип поля. Указываем типа type: admin_input_file_tag после чего поле автоматически конвертится в поле загрузки файлов.
Начиная с версии 1.2.x, больше мы как прежде сделать не можем, так как всем правят формы.
Соответственно вместо внесений в generator.yml, нужно сделать изменения в классе форм.
В моем примере у меня есть класс Album в котором есть поле Album Cover (обложка альбома), для того чтоб облажка была файловым полем, обвновляем класс формы AlbumForm.class.php (который создается автоматически) и вставляем в него следущее:
class AlbumForm extends BaseAlbumForm { public function configure() { $this->setWidget('album_cover', new sfWidgetFormInputFile()); $this->setValidator('album_cover', new sfValidatorFile(array('path' => 'uploads/', 'required' => false))); } } |
В результате мы получим в панеле управления поле для загрузки файлов обложки.
Оригинал blog.rajatpandit.com
Раздел Symfony


February 4th, 2009 at 5:30 pm
Хмм, я это понял за минут 5.
Ещё нюанс – валидатору нужно сказать ‘required’ => ‘false’, чтобы он не требовал загружать файл, даже если пользователь не хочет его обновлять.
February 4th, 2009 at 6:00 pm
С выходом версии 1.2, часто вознимает вопрос как в бекенде добавить файл, вот собственно это краткий курс, как.
February 5th, 2009 at 1:56 am
‘required’ => ‘false’, кстати очень нужен
Саш, допиши в код
February 5th, 2009 at 11:14 am
ага, добавил