我有以下設置:Symfony的2 - 基於實體的關聯動態表單生成
實體結果:
/**
* @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(),
))
;
}
形式AnswerType: - 這就是我想要做的動態,目前已被棄用:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('value', 'choice', array(
'choices' => Answer::getChoices(),
'expanded' => true,
'required' => true,
))
;
}
我想要做什麼:
結果的形式有AnswerType的集合 。我希望每個AnswerType都是動態的,取決於當前的答案已鏈接到。
例如,如果我有一個功能上Answer::getRandomStatus()
- 如果它是真實 - AnswerType的value
領域是text
,choice
否則。
我的猜測是在buildForm
方法AnswerType
,但$builder->getData() returns null
,我不能區分。