Forms 带细枝的symfony2中实体的表视图
我一直在寻找各种类似的问题和答案,但没有一个能解决我的问题。我觉得我错过了一些明显的东西,因为这似乎是疯狂的简单和普通。无论如何: 我想构建一个表视图,用户可以从中选择实体进行进一步处理。显然,我需要显示的不仅仅是一个名称,我想添加大量数据 “实体”表单类型似乎是自然选择,因此我定义了一个表单类型,包括:Forms 带细枝的symfony2中实体的表视图,forms,symfony,twig,Forms,Symfony,Twig,我一直在寻找各种类似的问题和答案,但没有一个能解决我的问题。我觉得我错过了一些明显的东西,因为这似乎是疯狂的简单和普通。无论如何: 我想构建一个表视图,用户可以从中选择实体进行进一步处理。显然,我需要显示的不仅仅是一个名称,我想添加大量数据 “实体”表单类型似乎是自然选择,因此我定义了一个表单类型,包括: $builder->add('items', 'entity', array( 'multiple'=>true, 'expanded'=&
$builder->add('items', 'entity', array(
'multiple'=>true,
'expanded'=>true,
'class'=>'MySiteBundle:Item', 'property'=>'name', 'query_builder'=>function(EntityRepository $er) use ($catagory) {
return $er->createQueryBuilder('s')->where('s.category = :cat')->andWhere('s.available=true')->orderBy('s.name')->setParameters(array('cat'=>$category));
}));
我想这会让我访问细枝中的实体。但无论我尝试什么,通过form.items.vars或.getvalue或其他24个类似问题的建议,都没有任何效果
我想要的只是一个带有项目数据名称、价格等的表,我不敢相信这会如此困难。我错过了什么简单而明显的东西
我需要使用表单,因为用户需要输入其他数据,我希望使用验证。您无法从表单视图中访问实体类型后面的实体。因此,您需要在单独的查询中获取项目。为了简化此操作,请使项目数组的键与其ID相对应。如果将items数组发送到模板,则可以按如下方式输出:
<table>
{% for item in form.items %}
{% set id = item.get('value') %}
<tr>
<td>{{ form_widget(item) }}</td>
<td>{{ items[id].name }}</td>
<td>{{ items[id].category.name }}</td>
<td>{{ items[id].available ? 'Yes' : 'No' }}</td>
{# and so on ... #}
</tr>
{% endfor %}
</table>
谢谢,这是正确的方法。我想补充一点,使用索引关联使这一点非常容易实现。我不知道。很高兴知道!:如果您可以提供一个示例,使项数组的键与它们的id相对应,那就太好了。此外,如果您使用的是symfony 2.1或更高版本,那么您应该使用{%set id=item.vars['value']%}