我有一个多车模板。可以有一个变量的车,没有固定的限制。
在每个购物车我想有一个用户可以选择一个国家的形式。如果他提交的形式应建立运费。
现在我正在做以下事情来在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();
现在的问题是,这个逻辑对于第一个购物车是有效的,但是对于后面的购物车却没有显示表单。我该如何处理这个问题呢?
3条答案
按热度按时间oogrdqng1#
我遇到了这个和另一个关于类似问题的问题。你可以在这里找到我的第一个答案。
最后,我没有在控制器中调用表单上的
createView()
函数,这是在将表单传递给视图时通常会做的,而是在twig视图本身中调用。例如,在你的控制器动作中,你确实返回了表单对象本身:
在你看来,你应该在每个循环中设置表单:
jvidinwx2#
对于Symfony 5和6,您可以
在你的树枝上
hkmswyz63#
您应该使用collection表单类型。这里是一个从How to Embed a Collection of Forms开始的指南
P.S.注意,在呈现表单小部件之后,Form组件将其标记为已呈现,并且不再呈现。