如何使用Symfony2中的选择表单字段指定传递的值

mic*_*jnr 7 symfony doctrine-orm

我有以下代码,显示在我的项目中添加子页面时可以使用的所有可用主页:

        $builder->add('subtocontentid',
          'entity',
           array(
                 'class'=>'Shout\AdminBundle\Entity\Content',
                 'property'=>'title',
                 'query_builder' => function (EntityRepository $repository)
                 {
                     return $repository->createQueryBuilder('s')
                            ->where('s.mainpage = ?1')
                            ->setParameter(1, '1')
                            ->add('orderBy', 's.created ASC');
                 }
        ));
Run Code Online (Sandbox Code Playgroud)

在表单中,它可以正常工作.它显示主页的正确标题.但是,将表单传递给数据库时,页面ID将传递给数据库.这不是我希望它工作的方式,我需要它将slug传递给数据库.

我知道我正在使用的代码检索数据库中的所有字段.我怎么能只选择Title字段和Slug字段,然后在表单中将Slug字段传递给数据库?

干杯

Hen*_*kov 2

您必须更改 EntityType 使用的 Transformer,它不是传递给数据库的 id,而是实体,因为 Transformer 获取 id 并在其列表中查找实体。所以在你的情况下它将是一个实例Shout\AdminBundle\Entity\Content