gpt4 book ai didi

php - 如何在 Symfony2 中多次渲染相同的表单?

转载 作者:可可西里 更新时间:2023-11-01 12:52:13 24 4
gpt4 key购买 nike

我有一个包含多个购物车的模板。购物车的数量可以变化,没有固定的限制。

在每个购物车中,我希望有一个用户可以选择国家/地区的表单。如果他提交表格,则应确定运费。

现在我正在执行以下操作以在 Twig 中实现它:

{% for cart in carts %}
{# Some template stuff #}
{{ form_start(form) }}
<div class="form-input">
<label for="country" class="middle-color">Country <span class="active-color">*</span></label>
{{ form_widget(form.country) }}
{{ form_end(form) }}
{% endfor %}

这是我的表单生成器:

$form = $this->createFormBuilder()
->add('country', 'choice', array('choice_list' => $choiceList, 'label' => 'country',
'attr' => array('class' => "custom-selectbox dark-color light-gradient")))
->getForm();

现在的问题是,这个逻辑对于第一个购物车来说工作正常,但是没有为更多的购物车显示表单。我该如何处理?

最佳答案

我遇到了这个问题和另一个关于类似问题的问题。 You can find my first answer for a solution here .

总结一下,我没有在 Controller 中调用表单上的 createView() 函数,就像通常在将表单传递给 View 时所做的那样,而是在 twig View 本身中调用。

例如在您的 Controller 操作中,您确实返回了表单对象本身:

return $this->render('AppBundle:Cart:list.html.twig', ['formObject' => $form];

在您看来,您将在每个循环中设置表单:

{% for cart in carts %}
{# Some template stuff #}
{% set form = formObject.createView %}
{{ form_start(form) }}
<div class="form-input">
<label for="country" class="middle-color">Country <span class="active-color">*</span></label>
{{ form_widget(form.country) }}
{{ form_end(form) }}
{% endfor %}

关于php - 如何在 Symfony2 中多次渲染相同的表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31337409/

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