developer blog – 451 degrees Fahrenheit

Developer Blog

Загрузка файлов в backend (админке) Symfony 1.2

February 2nd, 2009 by pilot | 4 Комментария »

symfonyИтак в 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

top of hotblogs.org.ua

Раздел Symfony

4 Responses

  1. Andy Says:

    Хмм, я это понял за минут 5.
    Ещё нюанс – валидатору нужно сказать ‘required’ => ‘false’, чтобы он не требовал загружать файл, даже если пользователь не хочет его обновлять.

  2. pilot Says:

    С выходом версии 1.2, часто вознимает вопрос как в бекенде добавить файл, вот собственно это краткий курс, как.

  3. Роман Says:

    ‘required’ => ‘false’, кстати очень нужен

    Саш, допиши в код

  4. pilot Says:

    ага, добавил

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.