我有以下设置:
实体结果:
/**
* @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()
上有一个函数 - 如果它是 true - AnswerType的value
字段为text
,{{1}否则。
我的猜测是choice
的{{1}}方法,但buildForm
,我无法区分。
答案 0 :(得分:3)
这应该可以为您提供所需的答案:
http://symfony.com/doc/2.0/cookbook/form/dynamic_form_modification.html
为了更好地理解上述内容,您可以查看:
https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Form/FormEvents.php
答案 1 :(得分:0)