Файл процесса symfony 1.4 после загрузки в форму не отправляет данные в БД, но сохраняет файл на диск - PullRequest
2 голосов
/ 19 февраля 2011

У меня есть форма с полем 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);
  }
}

1 Ответ

0 голосов
/ 19 февраля 2011

Хорошо, я понял ...

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

$fn = parent::save($file, $fileMode, $create, $dirMode);
//processing
return $fn;
...