#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. Действительно ли он загружает файл в файловую систему?