私は次の設定をしています:
エンティティの結果:
/**
* @ORM\OneToMany(targetEntity="Answer", mappedBy="result", cascade={"persist", "remove"}, orphanRemoval=true)
*/
private $answers;
エンティティの回答:
/**
* @ORM\ManyToOne(targetEntity="Result", inversedBy="answers", cascade={"persist"})
* @ORM\JoinColumn(name="result_id", referencedColumnName="id")
*/
private $result;
フォームResultType:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('answers', 'collection', array(
'type' => new AnswerType(),
))
;
}
Form AnswerType:-これは動的にしたいものですが、現在は非推奨です:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('value', 'choice', array(
'choices' => Answer::getChoices(),
'expanded' => true,
'required' => true,
))
;
}
私がやりたいこと:
結果フォームにはAnswerTypeのコレクションがあります。このAnswerTypeのそれぞれが、リンクされている現在のAnswerに応じて動的になるようにします。
たとえば、関数がオンになっているAnswer::getRandomStatus()
場合(trueのvalue
場合) 、AnswerTypeのフィールドはそうtext
でchoice
ない場合です。
私の推測はのbuildForm
方法でしAnswerType
たが、、$builder->getData() returns null
そして私は区別することができません。