如何将元素放到左侧菜单sonataadmin

时间:2015-01-19 22:00:29

标签: symfony fosuserbundle sonata-admin

我试图在Symfony 2奏鸣曲管理员中解决2个问题。 首先,我不能通过左侧菜单放置我的服务元素,我在主要的dahsboard视图中有它,我不知道如何把它放在我的存储库中找不到它 Screenshot

我的目录类

<?php
namespace AdminBundle\Admin;
use Sonata\AdminBundle\Admin\Admin;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Show\ShowMapper;

class CatalogAdmin extends  Admin
{
    protected $baseRouteName = 'admin_category';
    protected $baseRoutePattern = 'category';

    protected function configureFormFields(FormMapper $formMapper)
    {
        $categoryFieldOptions = array('multiple'=>true);
        $formMapper
            ->add('name')
            ->add('parent_id','sonata_type_model',$categoryFieldOptions)
            ->add('alias')
            ;
    }


    protected function configureListFields(ListMapper $listMapper)
    {
        $listMapper
            ->addIdentifier('id')
            ->add('name')
            ->add('parent_id')
            ->add('alias')


            ->add('_action','actions',array(
               'actions'=>array(
                   'show'=>array(),
                   'edit'=>array(),
               )
            ));
    }
    }

服务:

services:
    sonata.admin.categoryedit:
        class: AdminBundle\Admin\CatalogAdmin
        tags:
            - { name: sonata.admin, manager_type: orm, group: "Category", label: "Kategoria" , show_in_dashboard: "true" }
        arguments:
            - ~
            - AdminBundle\Entity\Category
            - ~
        calls:
            - [ setTranslationDomain, [AdminBundle]]

和配置文件(仅导入标签:):

imports:
    - { resource: parameters.yml }
    - { resource: security.yml }
    - { resource: services.yml }
    - { resource: @AdminBundle/Resources/config/admin.yml}

我的第二个问题是,当我试图点击任何内容时我会收到错误:

No entity manager defined for class AdminBundle\Entity\Category

如何解决这个问题? 最诚挚的问候

2014年1月21日 我在config.yml中创建了errror以查看错误消息

at Processor->processConfiguration(object(Configuration), array(array('title' => 'NewProject', 'title_logo' => '/bundles/sonataadmin/logo_title.png', 'dashboard' => array('blocks' => array(array('position' => 'left', 'type' => 'sonata.admin.block.admin_list')), 'groupsa' => array('admin.category' => array('label' => 'Kategorie', 'items' => array('sonata.admin.categoryedit'), 'roles' => array('ROLE_ADMIN'))))))) in SonataAdminExtension.php line 78

我可以看到标签我的项目sonata.admin.categoryedit没有任何位置或东西,这样可以吗?也许我应该改变一些事情?

3 个答案:

答案 0 :(得分:3)

您可以在config中定义它。我建议看完整配置

http://sonata-project.org/bundles/admin/master/doc/reference/configuration.html

左侧菜单中与链接相关的配置为:

 sonata_admin:
      dashboard:
           groups:
               name.of.your.first.level.of.menu:
                   label: name_of_item_here
                   items:
                        - sonata.admin.categoryedit
                        - another_service_name1
                        - another_service_name2

项目将显示为name_of_item_here格式化的菜单链接

关心实体经理,我不确定但是尝试将此行添加到您的配置

 sonata_doctrine_orm_admin:
   # default value is null, so doctrine uses the value defined in the configuration
      entity_manager: ~

sonata_doctrine_orm_admin的级别与sonata_admin相同(我的意思是yml中的级别)

答案 1 :(得分:1)

好的伙计们,问题解决了。 我没有通过数据库给我的用户管理权限,所以这是非常糟糕的错误;)

答案 2 :(得分:0)

关于{%if app.security.token和is_granted('ROLE_SONATA_ADMIN')%}:

您是否尝试输出此条件并检查它是否真的验证为真?

我的意思是在此比较之前添加类似COMPARISON_RESULT:{{app.security.token和is_granted('ROLE_SONATA_ADMIN')}}的内容?

或者只是尝试在里面放一些文字?只是为了检查它是否进入内部?