2013-10-18 47 views
3

我一直在寻找现在出错的日子;我遵循了奏鸣曲网站的文档,并重复了几次,但我的仪表板仍然是空的。在编写我的AdminClassServices(和设置config.yml)之后,我重新生成了实体并更新了我的模式,但是Sonata在我的数据库中为我想要在admin中的实体创建了一张表。Symfony 2.3.6和Sonata管理软件包:空的仪表板,没有错误

这里是我的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 ADMIN类代码:

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

最后这里是我的服务ca LL //src/APP/APPBundle/Resources/config/admin.yml

services: 
materniteam.app.admin.contact: 
    class: materniteam\AppBundle\Admin\ContactAdmin 
    tags: 
     - { name: sonata.admin, manager_type: orm, group: "App", label: "Contact" } 
    arguments: [ null, materniteam\AppBundle\Entity\Contact, SonataAdminBundle:CRUD ] 

就像我说的,我没有错误,但仪表板仍然没有上市我的实体。如果您需要更多代码,只需询问我将编辑此消息。

如果任何奏鸣曲组成员阅读本:

请更新您的文档!

+1

你应该移动你的答案到答案。顺便说一句,你是否指定'access_decision_manager: 策略:一致'按照http://sonata-project.org/bundles/admin/master/doc/reference/security.html#id1?使用'角色'选民应该工作,除非你已经与非超级管理员用户登录,并没有启用该管理员权限列表。 – TautrimasPajarskas

回答

3

试试这似乎与索纳塔的安全部分出现问题。

在我config.yml,我设置奏鸣曲具有以下值的安全性:它告诉奏鸣曲基于用户角色使用安全(我认为这是伟大的) 我成功看到

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

我在奏鸣曲中的实体通过以下方式替换处理程序

security: 
    handler: sonata.admin.security.handler.noop 

它告诉奏鸣曲使用基于Symfony的安全性。 (我有btw推广我的用户到ROLE_ADMIN继续访问奏鸣曲仪表板)

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: 
相关问题