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

时间:2011-09-23 16:59:57

标签: doctrine-orm symfony

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

        $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');
                 }
        ));

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

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

干杯

1 个答案:

答案 0 :(得分:2)

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

的实例