事先,抱歉我的英语......
我的symfony表单有问题,看起来很简单,但我不明白该怎么做。
我有一个用户类,其参数为“工资”。这是一个对象“salary”的数组,带有id,标签和金额。
当我添加用户时,我想填写我的对象“薪水”。我希望每个工资实例都有一个带有标签的小部件(在我的对象工资中)和输入金额的输入。
我尝试使用collectionType但它似乎不起作用。 我尝试在每个工资的对象用户中创建一个字段,但我无法动态创建setter和getter。
仅供参考,我不使用Doctrine。
如果不清楚,我可以用法语解释,它会更好......
这是我的userType.php:
$builder
->add('name', TextType::class, array('label'=>'Name : '))
->add('lastname', TextType::class, array('label'=>'Lastname : '))
->add('salaries', CollectionType::class, array('entry_type' => salaryType::class));
我的salaryType.php:
public function buildForm(FormBuilderInterface $builder, array $options){
$builder->add('amount', TextType::class, array('label'=> $builder->getData()->getLabel(), 'required' => false));
$builder->getForm();
}
我的树枝:
<div id="infos">
<div class="title">Salary</div>
<div>
{% for salary in formUser.salaries %}
<div><span>{{ form_label(salary.label) }}</span><span>{{ form_widget(salary.amount) }}</span></div>
{% endfor %}
</div>
</div>
答案 0 :(得分:0)
替换了这个
->add('salaries', CollectionType::class, array('entry_type' =>
salaryType::class));
通过
$builder->add('salaries', EntityType::class, [
'class' => 'NameBundle:salary',
'empty_value' => 'Choise a Salary',
'label' => 'Salary',
'required' => false,
'query_builder' => function (SalaryRepository $er){
return $er->findAll();
}
]);