我一直在寻找几天出了什么问题;我按照奏鸣曲网站上的文档重复了几次,但我的仪表板仍然是空的。在编写了我的AdminClass
和Services
(并设置了config.yml
)后,我重新生成了实体并更新了我的架构,但是Sonata在我的数据库中创建了一个表,用于我想要的实体{ {1}}。
以下是admin
的代码(导入文件顶部)
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
像我说的那样,我没有错误,但仪表板仍未列出我的实体。如果您需要更多代码,请询问,我将编辑此消息。
如果任何奏鸣曲组成员正在阅读此内容:
请更新您的文档!!!
答案 0 :(得分:3)
似乎问题出现在奏鸣曲的安全部分。
在我的config.yml中,我使用以下值设置奏鸣曲的安全性:
security:
handler: sonata.admin.security.handler.role
告诉sonata使用基于用户角色的安全性(我觉得这很棒) 通过以下
替换处理程序,我成功地在sonata中查看了我的实体 security:
handler: sonata.admin.security.handler.noop
告诉sonata使用基于Symfony的安全性。 (我已经将我的用户提升为ROLE_ADMIN以继续访问奏鸣曲仪表板)
答案 1 :(得分: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: