Symfony 2.3.6和Sonata Admin Bundle:清空仪表板,没有错误

时间:2013-10-18 08:54:27

标签: symfony sonata-admin

我一直在寻找几天出了什么问题;我按照奏鸣曲网站上的文档重复了几次,但我的仪表板仍然是空的。在编写了我的AdminClassServices(并设置了config.yml)后,我重新生成了实体并更新了我的架构,但是Sonata在我的数据库中创建了一个表,用于我想要的实体{ {1}}。

以下是admin的代码(导入文件顶部)

App/Config/Config.yml

imports: - { resource: parameters.yml } - { resource: security.yml } - { resource: @materniteamAppBundle/Resources/config/admin.yml } - { resource: @materniteamUserBundle/Resources/config/admin.yml } (带有奏鸣曲配置文件的底部)

App/Config/Config.yml

以下是我的实体联系人# FOS USER fos_user: db_driver: orm firewall_name: main user_class: materniteam\UserBundle\Entity\User # ADMIN SONATA sonata_block: default_contexts: [cms] blocks: sonata.admin.block.admin_list: contexts: [admin] sonata.block.service.text: sonata.block.service.action: sonata.block.service.rss: sonata_admin: title: Materniteam security: handler: sonata.admin.security.handler.role acl_user_manager: fos_user.user_manager 的管理员类:

//src/APP/APPBundle/Admin/ContactAdmin.php

最后这是我的服务电话<?php namespace materniteam\AppBundle\Admin; use Sonata\AdminBundle\Admin\Admin; use Sonata\AdminBundle\Datagrid\ListMapper; use Sonata\AdminBundle\Datagrid\DatagridMapper; use Sonata\AdminBundle\Form\FormMapper; class ContactAdmin extends Admin { protected function configureFormFields(FormMapper $formMapper) { $formMapper ->with('General') ->add('prenom') ->add('nom') ->add('adresse') ->add('codePostal') ->add('ville') ->end() ; } protected function configureListFields(ListMapper $listMapper) { $listMapper ->addIdentifier('Nom') ->add('prenom') ->add('adresse') ->add('codePostal') ->add('ville') ->add('_action', 'actions', array( 'actions' => array( 'view' => array(), 'edit' => array(), 'delete' => array(), ) )) ; } protected function configureDatagridFilters(DatagridMapper $datagridMapper) { $datagridMapper ->add('prenom') ->add('nom') ->add('adresse') ; } } ?>

//src/APP/APPBundle/Resources/config/admin.yml
像我说的那样,我没有错误,但仪表板仍未列出我的实体。如果您需要更多代码,请询问,我将编辑此消息。

如果任何奏鸣曲组成员正在阅读此内容:

请更新您的文档!!!

2 个答案:

答案 0 :(得分:3)

似乎问题出现在奏鸣曲的安全部分。

在我的config.yml中,我使用以下值设置奏鸣曲的安全性:

    security:
    handler: sonata.admin.security.handler.role

告诉sonata使用基于用户角色的安全性(我觉得这很棒) 通过以下

替换处理程序,我成功地在sonata中查看了我的实体
    security:
    handler: sonata.admin.security.handler.noop

告诉sonata使用基于Symfony的安全性。 (我已经将我的用户提升为ROLE_ADMIN以继续访问奏鸣曲仪表板)

答案 1 :(得分:0)

在奏鸣曲管理块中尝试此操作

   sonata_block:
     default_contexts: [cms]
     blocks:
       sonata.admin.block.admin_list:
            contexts:   [admin]
       sonata.block.service.text:
       sonata.block.service.action:
       sonata.block.service.rss: