Symfony не будет заполнять форму с большой строкой после bind () - PullRequest
0 голосов
/ 20 октября 2011

У меня проблемы с попыткой переопределить значение поля формы после отправки.В настоящее время форма включает в себя текстовые поля и данные для загрузки файла, но используется только один.Если пользователь загружает файл, он анализируется в текст.Я хочу использовать данные, которые анализируются из файла, в качестве значения для текстового поля при перезагрузке страницы, а не того, что было в текстовом поле (пусто).Содержимое не может быть определено до тех пор, пока не будет выполнено связывание.

Я просто снова связал данные, чтобы вручную установить значение текстовой области после анализа документа.Это прекрасно работает, если я жестко закодирую значение для значения, однако, когда я использую все содержимое файла, в текстовую область ничего не помещается.Не существует какого-то ограничения по длине или что-то, что может помешать населению?Я пробовал короткие строки, и они отлично работают, но эти файлы имеют длину около 4 КБ и не будут заполнять текстовую область.

Работает

$this->form->bind(array('text'=>'1234'), $request->getFiles('profile_generate') );

Не работает, даже еслитекст значения фактически устанавливается.

$this->form->bind(array('text'=>$largeString), $request->getFiles('profile_generate') );

1 Ответ

0 голосов
/ 21 октября 2011

FIX: Я полагаю, что любая функция, которую Symfony использует для заполнения полей из значений bind (), имеет проблему с нестандартными символами. К сожалению, он не жалуется на это и не говорит о том, что на самом деле является проблемой. После очистки данных все заработало нормально.

$largeString = preg_replace('/[^(\x20-\x7F)\x0A]+/',' ', $largeString);
$this->form->bind(array('text'=>$largeString), $request->getFiles('profile_generate') );
...