Symfony sfWidgetFormInputFile сохраняет путь к файлу в bd

#file-upload #symfony1

#загрузка файла #symfony1

Вопрос:

Я использую фреймворк symfony и хочу сделать очень простую вещь…добавьте в форму поле тип ввода = файл, чтобы файл мог быть загружен, а затем сохраните путь к bd, чтобы пользователь мог загрузить его последним.

Должно быть просто, но по какой-то причине у меня появляется сообщение «Объект с тем же «linkToFile» уже существует». ошибка. Поле linkToFile на bd уникально, и кажется, что значение, полученное файлом isfWidgetFormInputFile, равно другому, что странно, потому что единственные значения, которые у меня сейчас есть в bd, равны null. И это происходит только в том случае, если файл выбран, если поле оставлено пустым, проблем нет.

Код, который у меня есть, является:

 public function configure()
  {
      //the slug field can't be edited
      unset($this['slug']);
      $this->setWidget('linkToFile', new sfWidgetFormInputFile(array(), array()));
      $this->getWidget('linkToFile')->setLabel('Document Upload');
      $this->setValidator('linkToFile', new sfValidatorFile(array("required"=>false), array()));
      $this->setDefault('linkToFile', $this->getObject()->getLinkToFile());

  }
  

Ответ №1:

Что произойдет, если вы воспользуетесь уникальной настройкой этого поля?

Вероятно, эта ошибка возникает, если у вас несколько строк, поскольку будет несколько linkToFile значений, для которых установлено значение NULL

Комментарии:

1. Я изменил его, чтобы он больше не был уникальным, но он не сохраняет путь к файлу (значение поля file)… он сохраняется как пустой. Разве он не должен использовать путь к файлу?

2. Действительно ли он загружает файл в файловую систему?