我的选项的值字段不能使用与id
不同的字段,因此我编写了一个自定义FormType
,只是覆盖了finishView
并更改了所有value
条目和$view->vars['choices']
的数组键:
public function finishView(FormView $view, FormInterface $form, array $options)
{
foreach ($view->vars['choices'] as $choiceKey => $choice) {
$choice->value = $choice->data->getAcmeKey();
$view->vars['choices'][$choice->value] = $choice;
unset($view->vars['choices'][$choiceKey]);
}
parent::finishView($view, $form, $options);
}
然后我添加了一个ViewTransformer来获取该自定义Key的id。 到目前为止一切都很好。
现在的问题是,在我的表单中,未选择活动选项。
因此,如果我将data
设置为某个值或将实体绑定到设置值的表单,则输出中的值不会被选中 - 可能是因为entity->getId() == option->vale
/中有EntityType
/ DoctrineType
但我没有找到它,也没有解决这个问题。
任何想法?