Php Symfony2-细枝:HTML<;optgroup>;标签
我需要创建一个select with标记 这是我填写select的代码Php Symfony2-细枝:HTML<;optgroup>;标签,php,html,symfony,twig,Php,Html,Symfony,Twig,我需要创建一个select with标记 这是我填写select的代码 ->add('city', 'entity', array( 'empty_value' => 'Choisissez une option', 'class' => 'FrontBundle:City', 'query_builder' => function(EntityRepository $er) {
->add('city', 'entity', array(
'empty_value' => 'Choisissez une option',
'class' => 'FrontBundle:City',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('c')
->orderBy('c.city', 'ASC');
},
))
这是我在html.twig中的代码
<div class="form-group">
{{ form_label(form.city, 'Ville') }}
<div class="col-sm-8">
{{ form_widget(form.city) }}
</div>
</div>
{{form_标签(form.city,'Ville')}
{{form_widget(form.city)}
以下是我想要得到的结果:
<select>
<optgroup label="Région 1">
<option value="ville 1">Ville 1</option>
<option value="ville 2">Ville 2</option>
</optgroup>
<optgroup label="Région 2">
<option value="ville 3">Ville 3</option>
<option value="ville 4">Ville 4</option>
</optgroup>
</select>
维尔1
维尔2
维尔3
维尔4
有什么想法吗?多谢各位 如上所述,您可以使用实体
字段类型:
这是一个属性路径(例如,author.name
),用于组织
小组中的可用选项。它仅在渲染为“选择”时有效
标记并通过在选项周围添加optgroup
元素来实现。选择
将呈现不为此属性路径返回值的
直接位于select标记下方,没有周围的optgroup
因此,假设region
是city
的一个属性,您的代码应该如下所示:
->add('city', 'entity', array(
'empty_value' => 'Choisissez une option',
'class' => 'FrontBundle:City',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('c')
->orderBy('c.city', 'ASC');
},
'group_by' => 'region',
))
我不知道您想如何对城市进行分组,但是如果您已经有一个实体的参数要使用,例如
省或地区(或任何其他相关/关联),您可以在中使用它,或者您可以使用查询生成器中的groupBy子句构建optgroup树(否则您可以手动构建树)。对不起,我忘了提到我希望按地区分组。谢谢@Veve。那很有帮助。但是如何在twig.html文件中使用它。这就是Symfony2和twig的优点,您没有更多的事情要做,您的选择将自动用optgroups呈现。好的。我现在明白了。谢谢,我这样做了,但是我得到了:可捕获致命错误:类的对象。。。。。。。无法转换为字符串。有人知道我做错了什么吗?用实体的字符串属性添加'property'=>'name'
。您也可以将\uuu toString()
添加到实体中@D3F