У меня есть простая формаSymfony2: Форма: данные связывают
$transformer = new ModuleToArrayTransformer($this->entityManager);
$builder->add('modules', 'collection', array(
'type' => 'checkbox',
'required' => false,
'data' => $options['data'][0]->getModules(),
))
->add('save', 'submit', array(
'label' => 'btn_update_and_edit_again',
'attr' => array(
'class' => 'btn btn-primary'
)
))
->addViewTransformer($transformer);
И контроллер для него:
$em = $this->getDoctrine()->getManager();
$user = $this->get('security.context')->getToken()->getUser();
$module = $em->getRepository('AcmeProjectBundle:Module')
->findBy(
array(
'user' => $userId,
'project' => $projectId,
)
);
if (!$module) {
$module = $this->createAction($projectId, $userId);
}
$userData = $em->getRepository('AcmeSonataUserBundle:User')->find($userId);
$projectData = $em->getRepository('AcmeProjectBundle:Project')->find($projectId);
$form = $this->createForm(new ModuleType($em), $module, array('user' => $userData, 'project' => $projectData));
if ($request->getMethod() == 'GET') {
if ($form->isValid()) {
}
}
return $this->render('AcmeProjectBundle:Module:edit.html.twig',
array(
'form' => $form->createView(),
'projectId' => $projectId,
'userId' => $userId,
)
);
форма связана с другой формой. Когда я нажимаю на флажок в первой форме, эта форма генерируется - правильно. Пока я не пытаюсь $form->bind($request);
Когда я пытаюсь связать запрос, он показывает что-н, как «Это неверное значение»
$_GET
, кажется, хорошо
array (size=1) 'acme_projectbundle_module' => array (size=2) 'modules' => array (size=8) 'stats' => string '1' (length=1) 'time' => string '1' (length=1) 'issues' => string '1' (length=1) 'metrics' => string '1' (length=1) 'timeLine' => string '1' (length=1) 'information' => string '1' (length=1) 'status' => string '1' (length=1) 'risks' => string '1' (length=1) 'save' => string '' (length=0)
, а также $request
переменная
Если форма выглядит точно так же, как у моего $_GET
, спросите, в чем дело. м? Насколько я знаю, $ _GET должен содержать те же значения, что и поле $request->parameters
. Как тогда должно быть похоже? В чем проблема?
Я забыл добавить, что для тестового случая я делаю так: if ($ request-> getMethod() == 'GET' && count ($ _ GET)). Форма привязывается только тогда, когда я передаю значения. – user2739610
Решение, данное здесь, может помочь: http://stackoverflow.com/questions/13161062/form-bind-not-binding-request-to-form-in-symfony-2-1fosrestbundle –
Еще раз: getName возвращает 'acme_projectbundle_module' var_dump ($ _ GET) возвращает массив (size = 1) 'acme_projectbundle_module' var_dump ($ request) возвращает query -> parameters -> array (size = 1) 'acme_projectbundle_module' => Это правильно? Запрос go также запрос поля -> параметры -> массив (размер = 0) пуст – user2739610