【问题标题】:reference to one Sonata Mongodb Admin Bundle参考一个 Sonata Mongodb Admin Bundle
【发布时间】:2015-05-08 15:58:15
【问题描述】:

我正在开发一个 symfony2 网络应用程序,我已经安装了 sonata Mongodb admin Bundle。但是我有一个小问题,我的数据模型是“Quizz”文档,它引用了一个“QuizzTemplate”文档(参考 One) .这是我的代码:

protected function configureListFields(ListMapper $listMapper)
 {
    $listMapper
    ->addIdentifier('uid')
    ->add('name')
    ->add('quizzTemplate', null, array("required" => false )
    ->add ('User', null, array('label' => 'Candidat','required' => false, 'by_reference' => true))
    ->add('_action', 'actions', array(
        'actions' => array(
            'view' => array(),
            'edit' => array(),
            )
        ))
    ;
}

protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper
    ->add('uid')
    ->add('name')  
    ->add('quizzTemplate', null, array());



}

protected function configureShowFields(ShowMapper $showMapper)
{

    $showMapper
        ->add('name')
        ->add('User')
        ->add('numericresult',null ,array('label' => 'Resultat Global'))

    ;

}


protected function configureDatagridFilters(DatagridMapper $datagrid)
{
    $datagrid
    ->add('uid')
    ->add('name') 

    ;
}

实际上它适用于列表映射器,但配置和显示并非如此,这是错误:

错误:在非对象上调用成员函数 getRepository()

我试过这样:

->add('quizzTemplate.id')

我得到了这个:

没有为类 \ATS\QuizzBu​​ndle\Document\QuizzTemplate 定义文档管理器

有人知道如何解决这个问题吗?谢谢

【问题讨论】:

    标签: mongodb symfony sonata-admin


    【解决方案1】:

    我刚刚在 Sonata Mongodb 上遇到了同样的问题。我正在使用多个连接和文档管理器。

    这是我的第一个错误,我使用命令app/console sonata:admin:generate 为现有文档创建了一个管理员,当提示输入The fully qualified model class 时我写了\Project\MyBundle\Document\MyDocument。其余的过程都很好,但在最后,当生成器尝试生成 MyDocumentAdmin 类时,我得到了和你一样的错误:

    没有为类 \Project\MyBundle\Document\MyDocument 定义文档管理器

    我花了一些时间才弄清楚出了什么问题...我手动创建了管理类,并在尝试显示列表时遇到了同样的错误。

    实际上这个错误是由于命名空间中的拼写错误,您需要在已生成的服务奏鸣曲的参数中删除您的类命名空间中的第一个字符\

    语法错误:

    参数:[~, \MyProject\MyBundle\Document\MyDocument, SonataAdminBundle:CRUD]

    语法很好:

    参数:[~,MyProject\MyBundle\Document\MyDocument,SonataAdminBundle:CRUD]

    完整的工作服务定义:

    my_project.admin.my_document:
            class: MyProject\MyBundle\Admin\MyDocumentAdmin
            arguments: [~, MyProject\MyBundle\Document\MyDocument, SonataAdminBundle:CRUD]
            tags:
                - {name: sonata.admin, manager_type: doctrine_mongodb, group: admin, label: MyDocument}
    

    修复后,一切都恢复正常了。

    【讨论】:

      猜你喜欢
      • 2016-10-11
      • 2016-09-03
      • 2015-06-30
      • 2016-04-20
      • 1970-01-01
      • 2013-03-06
      • 2017-05-18
      • 2017-12-29
      • 2013-04-24
      相关资源
      最近更新 更多