使用createFormBuilder在Symfony2中创建了一个表单,它不需要实体,仅用于搜索.需要更改表单名称和输入名称.
$form = $this->createFormBuilder(null, array( 'action' => $this->generateUrl('route'), 'method' => 'GET', 'csrf_protection' => false, 'attr' => array('name' => 'search'), )) ->add('query', 'text', array( 'required' => false, )) ->getForm();
呈现的HTML如下:
如何更改表单名称?目前它是形式,这意味着div id也是形式,可以改为搜索吗?
其次输入应该有一个名称作为查询而不是形式[查询]?
我已经看过有关使用没有实体的表单的文档,但我看不到如何更改这些属性.
最终结果应该是:
Dmitrii Koro.. 7
你应该打电话createNamedBuilder
.它允许您在第一个参数中设置自定义表单名称.
例:
// public function createNamedBuilder($name, $type = 'form', $data = null, array $options = array()) $form = $this->get('form.factory')->createNamedBuilder('', 'form', array(), array( 'action' => $this->generateUrl('route'), 'method' => 'GET', 'csrf_protection' => false, 'attr' => array('name' => 'search'), ))->add('query', 'text', array( 'required' => false, ))->getForm();
有关更有用的方法,请参阅: \Symfony\Component\Form\FormFactory
你应该打电话createNamedBuilder
.它允许您在第一个参数中设置自定义表单名称.
例:
// public function createNamedBuilder($name, $type = 'form', $data = null, array $options = array()) $form = $this->get('form.factory')->createNamedBuilder('', 'form', array(), array( 'action' => $this->generateUrl('route'), 'method' => 'GET', 'csrf_protection' => false, 'attr' => array('name' => 'search'), ))->add('query', 'text', array( 'required' => false, ))->getForm();
有关更有用的方法,请参阅: \Symfony\Component\Form\FormFactory