我想在表格中的表格行ID中添加一个twig变量。
{% for child in form %}
{{ form_widget(child, {'id':'asterisks-rating-loop.index' }) }}
{% endfor %}
目前它没有被解析为twig变量。有没有办法在没有使用Javascript或jQuery的情况下使用此设置将id设置为&asterisks-rating - ' loop.index?
我试图逃避'它与:
{{ form_widget(child, {'id':'asterisks-rating-{{loop.index}}' }) }}
{{ form_widget(child, {'id':'asterisks-rating-'{{loop.index}}'' }) }}
但显然这些解决方案都不起作用。
答案 0 :(得分:3)
使用
{{ form_widget(child, {'id':'asterisks-rating-' ~ loop.index }) }}
答案 1 :(得分:0)
最佳做法应该是:
添加form collection而不是多个表格(例如,如果您的表单未单独处理)。
如果您的表单是单独处理的,请在类型的getName()
方法中添加动态ID,例如:
BobType.php
<?php
namespace Fuz\AppBundle\Form;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
class BobType extends AbstractType
{
protected $suffix;
public function __construct($suffix)
{
$this->suffix = $suffix;
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('whatever', 'text')
;
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array (
'data_class' => 'Fuz\AppBundle\Entity\BobData',
));
}
public function getName()
{
return 'BobType-' . $suffix;
}
}
BobController.php
$formA = new BobType("hello"); // {{ formA.whatever.vars.id == BobType-hello-whatever }}
$formB = new BobType("world"); // {{ formB.whatever.vars.id == BobType-world-whatever }}