我的Product
实体具有以下结构:
private $id;
private $title;
/**
* @ManyToOne(targetEntity="Category")
* @JoinColumn(name="cat_id", referencedColumnName="id")
*/
private $category;
Category
有嵌套结构。每一层嵌套都显示在 5 个单独的字段中:
在类表单代码中,我是这样解决的:
$builder
->add('cat_1', 'entity', array(
...
'query_builder' => function() { return someSelectLogic1(); }
))
->add('cat_2', 'entity', array(
...
'query_builder' => function() { return someSelectLogic2(); }
))
->add('cat_3', 'entity', array(
...
'query_builder' => function() { return someSelectLogic3(); }
))
->add('cat_4', 'entity', array(
...
'query_builder' => function() { return someSelectLogic4(); }
))
->add('cat_5', 'entity', array(
...
'query_builder' => function() { return someSelectLogic5(); }
))
现在我需要知道最后一回合填充了哪个字段,并在实体属性中传递该字段的值。
在所有我不喜欢的地方:
确定最后填写哪个类别的字段的复杂逻辑
这些字段中的每一个都不与实体绑定
'mapped' => false
1)组织我的表单代码的正确方法是什么?
2)有没有办法将这些字段放入一个单独的类中,该类将处理确定最终选择哪个类别的逻辑?