Я следовал документация ZendFramework для загрузки файлов находятся здесь: http://framework.zend.com/manual/2.1/en/modules/zend.form.file-upload.htmlZendFramework 2 Формы файл валидаторы
Моя проблема в том, когда я пытаюсь отправить форму, когда она не действительна я получаю следующее сообщение об ошибке:
Array provided to Escape helper, but flags do not allow recursion
Здесь кодирует конкретное действие в моем контроллере:
public function addAction()
{
$form = new TeamForm();
$form->get('submit')->setValue('Add');
$request = $this->getRequest();
if ($request->isPost()) {
$team = new Team();
$form->setInputFilter($team->getInputFilter());
$post = array_merge_recursive($request->getPost()->toArray(), $request->getFiles()->toArray());
$form->setData($post);
if ($form->isValid()) {
$files = $request->getFiles();
$filter = new RenameUpload(array("target" => "./public/uploads/", "use_upload_extension" => true, "randomize" => true));
$fileinfo = $filter->filter($files['image']);
$team->exchangeArray($form->getData());
$team->image = basename($fileinfo["tmp_name"]);
$this->getTeamTable()->saveTeam($team);
return $this->redirect()->toRoute('team');
}
}
return array('form' => $form);
}
Я сузил ERR или по следующей строке:
$form->setData($post);
Когда я делаю переменную дамп в $ post, все выглядит правильно. После поиска в Интернете я не смог найти ответы на вопрос, почему это происходит.
Буду рад предоставить дополнительную информацию в случае необходимости относительно этого.
Спасибо,
EDIT
Вот код вид
<?php
$form->setAttribute('action', $this->url('team', array('action' => 'add')));
$form->prepare();
echo $this->form()->openTag($form);
echo $this->formInput($form->get('image'));
echo $this->formInput($form->get('name')
->setAttribute('class', 'large m-wrap')
->setAttribute('autocomplete', 'off')
->setAttribute('placeholder', 'Name'));
echo $this->formElementErrors($form->get('name'));
echo $this->formInput($form->get('title')
->setAttribute('class', 'large m-wrap')
->setAttribute('autocomplete', 'off')
->setAttribute('placeholder', 'Title'));
echo $this->formElementErrors($form->get('title'));
echo $this->formSubmit($form->get('submit')
->setAttribute('class', 'btn green'));
echo $this->form()->closeTag();
?>
Могли бы вы вставить результат 'var_dump ($ post); 'непосредственно перед' $ form-> setData ($ post); ', пожалуйста? – Carlos