3

我一直在尝试安装 SonataAdminBundle。我想我遵循了文档,另外我阅读了一些关于它的博客。但我做不到。

进入管理/仪表板页面时,我看到奏鸣曲标题,我可以在右侧看到 sonata.block.service.text 和 sonata.block.service.rss,但 admin_list 块中没有任何内容 => 我看不到我的实体。

这是我的设置方式。我可能忘记了什么?这是 app/config/config.yml

imports:
- { resource: parameters.yml }
- { resource: security.yml }
- { resource: ../../src/Pierre/TennisBundle/Resources/config/admin.yml }

...

sonata_block:
    default_contexts: [cms]
    blocks:
        sonata.admin.block.admin_list:
            contexts:   [admin]

        sonata.block.service.text:
        sonata.block.service.rss:

sonata_doctrine_orm_admin:
    # default value is null, so doctrine uses the value defined in the configuration
    entity_manager: '@doctrine.orm.entity_manager'

    templates:
        form:
            - SonataDoctrineORMAdminBundle:Form:form_admin_fields.html.twig
        filter:
        - SonataDoctrineORMAdminBundle:Form:filter_admin_fields.html.twig
        types:
            list:
                array:      SonataAdminBundle:CRUD:list_array.html.twig
                boolean:    SonataAdminBundle:CRUD:list_boolean.html.twig
                date:       SonataAdminBundle:CRUD:list_date.html.twig
                time:       SonataAdminBundle:CRUD:list_time.html.twig
                datetime:   SonataAdminBundle:CRUD:list_datetime.html.twig
                text:       SonataAdminBundle:CRUD:base_list_field.html.twig
                trans:      SonataAdminBundle:CRUD:list_trans.html.twig
                string:     SonataAdminBundle:CRUD:base_list_field.html.twig
                smallint:   SonataAdminBundle:CRUD:base_list_field.html.twig
                bigint:     SonataAdminBundle:CRUD:base_list_field.html.twig
                integer:    SonataAdminBundle:CRUD:base_list_field.html.twig
                decimal:    SonataAdminBundle:CRUD:base_list_field.html.twig
                identifier: SonataAdminBundle:CRUD:base_list_field.html.twig

            show:
                array:      SonataAdminBundle:CRUD:show_array.html.twig
                boolean:    SonataAdminBundle:CRUD:show_boolean.html.twig
                date:       SonataAdminBundle:CRUD:show_date.html.twig
                time:       SonataAdminBundle:CRUD:show_time.html.twig
                datetime:   SonataAdminBundle:CRUD:show_datetime.html.twig
                text:       SonataAdminBundle:CRUD:base_show_field.html.twig
                trans:      SonataAdminBundle:CRUD:show_trans.html.twig
                string:     SonataAdminBundle:CRUD:base_show_field.html.twig
                smallint:   SonataAdminBundle:CRUD:base_show_field.html.twig
                bigint:     SonataAdminBundle:CRUD:base_show_field.html.twig
                integer:    SonataAdminBundle:CRUD:base_show_field.html.twig
                decimal:    SonataAdminBundle:CRUD:base_show_field.html.twig

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

    title:      Sonata Project
    title_logo: /bundles/sonataadmin/logo_title.png
    templates:
        # default global templates
        layout:  SonataAdminBundle::standard_layout.html.twig
        ajax:    SonataAdminBundle::ajax_layout.html.twig
        dashboard: SonataAdminBundle:Core:dashboard.html.twig

        # default actions templates, should extend a global templates
        list:    SonataAdminBundle:CRUD:list.html.twig
        show:    SonataAdminBundle:CRUD:show.html.twig
        edit:    SonataAdminBundle:CRUD:edit.html.twig

    dashboard:
        blocks:
            # display a dashboard block
            - { position: left, type: sonata.admin.block.admin_list }

            # Customize this part to add new block configuration
            - { position: right, type: sonata.block.service.text, settings: { content: "<h2>Welcome to the Sonata Admin</h2> <p>This is a <code>sonata.block.service.text</code> from the Block Bundle, you can create and add new block in these area by configuring the <code>sonata_admin</code> section.</p> <br /> For instance, here a RSS feed parser (<code>sonata.block.service.rss</code>):"} }
            - { position: right, type: sonata.block.service.rss, settings: { title: Sonata Project's Feeds, url: http://sonata-project.org/blog/archive.rss }}

        groups:
            sonata_page:
                label: TestLabel
                items: ~



    # set to true to persist filter settings per admin module in the user's session
    persist_filters: true

我的管理课

namespace Pierre\TennisBundle\Admin;

use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Form\FormMapper;

use Pierre\TennisBundle\Entity\Tennismen;

class TennismenAdmin extends Admin
{
    protected function configureFormFields(FormMapper $formMapper)
    {
        $formMapper
            ->add('name')
               ;
    }

    protected function configureDatagridFilters(DatagridMapper $datagridMapper)
    {
        $datagridMapper
            ->add('name')
               ;
    }

    protected function configureListFields(ListMapper $listMapper)
    {
        $listMapper
            ->addIdentifier('name')
                ;
    }
}

我的控制器:

namespace Pierre\TennisBundle\Controller;

use Sonata\AdminBundle\Controller\CRUDController as Controller;

class TennismenAdminController extends Controller
{
}

我的服务:

# TennisBundle/Resources/config/admin.yml
services:
    pierre.tennis.admin.tennismen:
        class: Pierre\TennisBundle\Admin\TennismenAdmin
        tags:
            - { name: sonata.admin, manager_type: orm, group: sonata_page, label: Blog }
        arguments: [null, Pierre\TennisBundle\Entity\Tennismen, PierreTennisBundle:TennismenAdmin]

所以我认为我尊重指南......但我在仪表板中看不到我的实体网球运动员。

4

3 回答 3

4

但在某些情况下,向所有用户授予 SUPER_ADMIN 角色并不是一个解决方案,请确保在 yout parameters.yml 中有这一行:

security.acl.permission.map.class: Sonata\AdminBundle\Security\Acl\Permission\AdminPermissionMap
于 2014-07-18T14:47:48.233 回答
2

您可以尝试SonataAdminBundle:CRUD作为服务定义中的第三个参数吗?此外,请确保您已使用超级管理员登录(如果您安装了 SonataUserAdmin)。另外,尝试删除dashboard您的部分config.yml或尝试一起使用尽可能少的配置。

于 2013-07-28T20:15:43.327 回答
0

谢谢你,我可以解决它!我必须将 FOSUser SUPER_ADMIN 角色添加到我的用户才能看到 admin_block。

谢谢!

于 2013-07-28T20:38:26.993 回答