相关疑难解决方法(0)

Symfony2形成事件和模型变换器

我正试图与Symfony2的表格制作者,活动和变形金刚搏斗...希望有人在这里更有经验,可以提供帮助!

我有一个表单字段(选择下拉列表),其中包含一些映射到实体的值(一个候选名单).其中一个选项是"其他".假设现在没有AJAX,当用户提交表格我想要检测他们是否选择了"其他"(或者不在候选名单中的任何其他选项).如果他们选择了其中一个选项,则应显示完整的选项列表,否则只显示候选名单.应该很容易吧?;)

所以,我有我的表格类型,它显示基本的候选名单就好了.代码看起来像这样:

namespace Company\ProjectBundle\Form\Type;

use ...

class FancyFormType extends AbstractType {
    private $fooRepo;

    public function __construct(EntityManager $em, FooRepository $fooRepo)
    {
        $this->fooRepo = $fooRepo;
    }

    public function buildForm(FormBuilderInterface $builder, array $options) {
        /** @var Bar $bar */
        $bar = $builder->getData();
        $fooTransformer = new FooToStringTransformer($options['em']);

        $builder
            ->add($builder
                ->create('linkedFoo', 'choice', array(
                    'choices' => $this->fooRepo->getListAsArray(
                        $bar->getLinkedfoo()->getId()
                    ),
                ))
                ->addModelTransformer($fooTransformer)
            )
        ;

        // ...

    }

    // ...
}
Run Code Online (Sandbox Code Playgroud)

现在,我想检查提交的值,因此我使用Form Event Listener,如下所示.

public function buildForm(FormBuilderInterface $builder, array $options) {
    // ... This code comes just …
Run Code Online (Sandbox Code Playgroud)

php forms symfony doctrine-orm

23
推荐指数
1
解决办法
2万
查看次数

标签 统计

doctrine-orm ×1

forms ×1

php ×1

symfony ×1