【问题标题】:Symfony 2 - Dynamic form generation based on Entities associationSymfony 2 - 基于实体关联的动态表单生成
【发布时间】:2023-03-10 04:23:02
【问题描述】:

我有以下设置:

实体结果

/**
 * @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 - AnswerType 的 value 字段为 text,否则为 choice

我的猜测是在AnswerTypebuildForm方法中,但是$builder->getData() returns null,我无法区分。

【问题讨论】:

    标签: php forms symfony types doctrine-orm


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多