gpt4 book ai didi

symfony - (Symfony\Form) 防止自动生成表单域

转载 作者:行者123 更新时间:2023-12-04 22:11:10 24 4
gpt4 key购买 nike

我有一个 Twig 模板。它遍历表单集合 (form.MeteringCodes)。问题是,我只需要显示一个字段的值,当我不明确使用“form_row(...)”时, symfony 会在表单的末尾自动生成字段 .

    {{ form_start(form) }}
...
<tbody>
{% for metCode in form.MeteringCodes %}
{{ form_row(metCode.id) }}
<tr>
<td>{{ metCode.desc.vars.value }} {# <-- Here is the pure value #}</td>
<td>{{ form_row(metCode.sdesc) }}</td>
<td style="width:20%;">{{ form_row(metCode.type) }}</td>
<td style="width:15%;">{{ form_row(metCode.state) }}</td>
</tr>
{% endfor %}
</tbody>
...
{{ form_end(form) }}

我看到两种方式。一种是禁用这种“自动生成”行为。第二个可能是,如果我只是从原始对象本身获取值,而不将其定义为字段(如果可能的话)。

集合类型本身:
class MeteringCodeType extends \Symfony\Component\Form\AbstractType
{
public function buildForm(\Symfony\Component\Form\FormBuilderInterface $builder, array $options)
{
$builder->add('id', 'hidden');
$builder->add('desc', 'text', ['label' => false, 'disabled' => true]);
$builder->add('sdesc', 'text', ['label' => false]);
$builder->add('type', 'choice', ['choices' => array('L' => '...', 'D' => '...', 'N' => '...'), 'label' => false]);
$builder->add('state', 'text', ['label' => false]);
}

public function configureOptions(\Symfony\Component\OptionsResolver\OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'app\models\MeteringCode',
));
}

public function getName()
{
return 'MeteringCode';
}
}

我不想使用像隐藏字段这样的解决方法。

最佳答案

您可以将附加参数传递给 form_end()称呼:

{{ form_end(form, {'render_rest': false}) }}

希望这可以帮助...

关于symfony - (Symfony\Form) 防止自动生成表单域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32585047/

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