2

几天来我一直在寻找问题所在;我按照奏鸣曲网站上的文档重复了几次,但我的仪表板仍然是空的。在编写了我的AdminClassand Services(并设置config.ymladmin.

这是我的代码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

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 ]

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

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

请更新您的文件!!!

4

2 回答 2

3

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

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

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

它告诉奏鸣曲使用基于用户角色的安全性(我认为这很好)我通过以下替换处理程序成功地在奏鸣曲中看到了我的实体

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

它告诉奏鸣曲使用基于 Symfony 的安全性。(顺便说一句,我将我的用户提升为 ROLE_ADMIN 以继续访问奏鸣曲仪表板)

于 2014-02-19T11:34:31.810 回答
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:
于 2013-10-22T07:12:58.323 回答