gpt4 book ai didi

forms - 带有 Twig 的symfony2中实体的 TableView

转载 作者:行者123 更新时间:2023-12-01 12:46:35 24 4
gpt4 key购买 nike

我一直在寻找各种类似的问题和答案,但没有一个适合这个或解决我的问题。我觉得我遗漏了一些明显的东西,因为这似乎非常简单和普遍。无论如何:

我想构建一个 TableView ,用户可以从中选择实体进行进一步处理。显然,我需要显示的不仅仅是一个名字,我还想添加大量的数据。

“实体”表单类型似乎是自然选择,所以我定义了一个表单类型,包括:

    $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));
}));

我认为这会以某种方式让我访问 twig 中的实体。但无论我尝试什么,通过 form.items.vars 或 .get("value") 或针对类似问题提出的其他两打建议,都无济于事。

我想要的只是一个包含商品数据(名称、价格等)的表格,我无法相信这如此困难。我错过了什么简单、明显的事情?

我需要使用表单,因为用户需要输入其他数据并且我想使用验证。

最佳答案

您无法从表单 View 中访问 entity 类型背后的实体。因此,您需要在单独的查询中获取项目。为简化此操作,请使项目数组的键与其 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>

关于forms - 带有 Twig 的symfony2中实体的 TableView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15266511/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com