Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony 2.7和Twig中选项的呈现_Php_Symfony_Twig - Fatal编程技术网

Php Symfony 2.7和Twig中选项的呈现

Php Symfony 2.7和Twig中选项的呈现,php,symfony,twig,Php,Symfony,Twig,尝试在Symfony 2.7.0中渲染下拉列表,但在渲染视图中的选项时遇到一些问题 $form = $this->createFormBuilder(null) ->add('timespan', 'choice', array( 'choices' => array(90 => "3 months", 30 => "1 month") )) ->getForm(); ... return array( 'form' =>

尝试在Symfony 2.7.0中渲染下拉列表,但在渲染视图中的选项时遇到一些问题

$form = $this->createFormBuilder(null)
->add('timespan', 'choice', array(
     'choices' => array(90 => "3 months", 30 => "1 month")
 ))
 ->getForm();

 ...

 return array(
    'form' => $form->createView(),      
 );

...
在此之后执行var_转储将显示以下值:

var_dump($form->get('timespan')->getConfig()->getOption('choices'));
但在视图中渲染时,如下所示:

{{ form_widget(form.timespan, {'class': 'span2'}) }}
选择框变为空

<select id="form_timespan" name="form[timespan]" required="required" class="span2"></select>


你知道为什么会发生这种情况吗?我遗漏了什么吗?

您忘记了通话中的
attr
键:

{{ form_widget(form.timespan, {'attr': {'class': 'span2'}}) }}

问题显然出在小树枝上。您可以通过编辑表单主题对此进行调试,以查看输入的值和预期值。主题可在以下网址找到:

供应商/symfony/symfony/src/symfony/Bridge/Twig/Resources/views/Form/bootstrap\u 3\u layout.html.Twig

(或者你可以自己使用。)

您正在寻找
{%block choice\u widget%}
专门用于呈现此内容

在本例中,您似乎忘记为HTML类使用
attr
键:

{{ form_widget(form.timespan, {'attr': {'class': 'span2'}}) }}

我认为您的呈现应该如下所示:{form_小部件(form.timespan,{'attr':{'class':'span2'}}}}}