2015-05-08 52 views
0

我正在一個symfony2網絡應用程序,我已經安裝了奏鳴曲Mongodb管理Bundle.but我有一個小問題,我的數據模型是'Quizz'文檔引用'QuizzTemplate '文件(參考一)。這是我的代碼:引用一個奏鳴曲Mongodb管理軟件包

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') 

    ; 
} 

事實上它適用於列表映射器,但它不與配置和顯示的情況下,這是錯誤:

Error: Call to a member function getRepository() on a non-object

我嘗試了這種方式:

->add('quizzTemplate.id')

和我得到這個:

No document manager defined for class \ATS\QuizzBundle\Document\QuizzTemplate

任何人都知道如何解決這個問題?謝謝

回答

0

我剛剛與Sonata Mongodb有同樣的問題。我正在使用多個連接和文檔管理器。

這是我的第一個錯誤,我用命令app/console sonata:admin:generate爲現有文檔創建了一個管理員,當提示輸入The fully qualified model class時,我寫了\Project\MyBundle\Document\MyDocument。該過程的其餘部分都很好,但在最後,當發電機試圖產生MyDocumentAdmin類我爲你做了同樣的錯誤:

No document manager defined for class \Project\MyBundle\Document\MyDocument

我花了一些時間來找出了問題.. 。我已經手動創建了admin類,並且在嘗試顯示列表時得到了相同的錯誤。

實際上,這個錯誤是由於命名空間中的拼寫錯誤造成的,您需要在您的類名稱空間中的第一個字符\中刪除已生成的服務聲明的參數。

語法錯誤:

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

良好的語法:

arguments: [~, 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} 

此修復程序後,一切都再正常工作。

相關問題