私の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)そして、これらのフィールドを、最終的に選択されたカテゴリを決定するロジックを処理する別のクラスに入れる方法はありますか?