我试图在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没有任何位置或东西,这样可以吗?也许我应该改变一些事情?
答案 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')}}的内容?
或者只是尝试在里面放一些文字?只是为了检查它是否进入内部?