symfony 1.4 обрабатывает файл после загрузки в форму, не отправляет данные в БД, но сохраняет файл на диск

У меня есть форма с полем sfWidgetFormInputFile. Я загружаю изображения, и после загрузки я хотел бы немного обработать только что загруженный файл.

Я знаю, что могу использовать для этого класс validated_file_class. Я перезаписываю метод save() в своем пользовательском классе, и файл сохраняется правильно, но сохранение в базе данных не работает, он просто отправляет мне нулевые значения для поля имени файла. Я что-то упускаю?

Вот соответствующий код:

class MyForm extends BaseMyForm
{
  public function configure()
  {
    $this->widgetSchema['image'] = new sfWidgetFormInputFile();
    $this->validatorSchema['image'] = new sfValidatorFile(array(
                                         'required' => true,
                                         'path' => sfConfig('sf_upload_dir'),
                                         'mime_types' => 'web_images',
                                         'validated_file_class' => 'MyCustomValidatedFile'
                                                          ));
  }
}

class MyCustomValidatedFile extends sfValidatedFile
{
  public function save($file = null, $fileMode = 0666, $create = true, $dirMode = 0777)
  {
    parent::save($file, $fileMode, $create, $dirMode);
  }
}

person Javier Novoa C.    schedule 18.02.2011    source источник


Ответы (1)


Ладно, я понял...

Мне просто не хватало оператора return для метода save()... Он должен возвращать имя только что сохраненного файла без префикса пути.

$fn = parent::save($file, $fileMode, $create, $dirMode);
//processing
return $fn;
person Javier Novoa C.    schedule 19.02.2011