symfony 1.4 обработва файл след качване във формуляр, не изпраща данни към DB, но записва файла на диска

Имам формуляр с поле 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)


Добре, разбрах...

Просто ми липсваше операторът за връщане за метода save()... Той трябва да върне името на току-що запазения файл без префикс на пътя.

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