Symfony 在sonata管理包中设置类似choose的字段

Symfony 在sonata管理包中设置类似choose的字段,symfony,sonata-admin,symfony-sonata,Symfony,Sonata Admin,Symfony Sonata,你好,我在和索纳塔管理包合作 所以我要创建一个表单,其中我需要从这些表单列表中选择一个Facultad实体,这是创建和编辑Proyecto记录的方法 受保护的函数配置FormFields(FormMapper$FormMapper) { $em=$this->getConfigurationPool()->getContainer()->get('doctrine.orm.entity_manager'); $facultades=$em->getRepository('UIFIIntegran

你好,我在和索纳塔管理包合作

所以我要创建一个表单,其中我需要从这些表单列表中选择一个Facultad实体,这是创建和编辑
Proyecto
记录的方法

受保护的函数配置FormFields(FormMapper$FormMapper)
{
$em=$this->getConfigurationPool()->getContainer()->get('doctrine.orm.entity_manager');
$facultades=$em->getRepository('UIFIIntegrantesBundle:Facultad')->findAll();
$formMapper
->添加('nombre')
->添加('facultad','choice',数组('choices'=>$facultades))
;
}
在此之前,我在实体
Facultdad

因此,当我尝试添加一些寄存器时,我得到了一个错误,
Facultad
实体显然检索了一个
id
值,而不是实体

Catchable致命错误:参数1传递给UIFI\IntegrantesBundle\Entity
\Proyecto::setFacultad()必须是UIFI\IntegrantesBundle\Entity的实例
\Facultad,给定整数,在/Development/repositorios/uifi/vendor中调用
/上的symfony/symfony/src/symfony/Component/PropertyAccess/PropertyAccessor.php
第442行已定义

那么,如何从sonata admin类中的实体列表中设置choose的最佳方法是什么呢?

您需要使用“sonata\u type\u model”而不是choose

在这种情况下,您的代码将变成:

protected function configureFormFields(FormMapper $formMapper)
{     
    $formMapper
        ->add('nombre')
        ->add('facultad','sonata_type_model')
    ;
}