如何为一个模型创建两个不同的列表?就我而言,我有一个模型用户。对于仪表板中的此模型,我必须有两个列表:成员和管理员。我为会员创建:
sonata.admin.members:
class: Project'AdminBundle'Admin'MemberAdmin
tags:
- { name: sonata.admin, manager_type: orm, model_manager: sonata.admin.manager.project, group: Members, label: Members}
arguments: [null, %fos_user.model.user.class%, SonataAdminBundle:CRUD]
calls:
- [setTranslationDomain, [ProjectUserBundle]]
对于管理员:
sonata.admin.user:
class: Project'UserBundle'Admin'UserAdmin
tags:
- { name: sonata.admin, manager_type: orm, model_manager: sonata.admin.manager.project, group: Admins, label: Admin Users}
arguments: [null, %fos_user.model.user.class%, ProjectUserBundle:CRUD]
calls:
- [setTranslationDomain, [ProjectUserBundle]]
因此,我在管理面板中有两个选项卡,但它有一个 url,并且仅适用于一个 Admin 类。
有什么想法吗?
在管理员类中设置两个参数baseRoutePattern和baseRouteName
我做了类似的事情,并在我的基本用户类上使用原则单表继承(http://docs.doctrine-project.org/projects/doctrine-orm/en/2.0.x/reference/inheritance-mapping.html#single-table-inheritance)来创建单独的管理员和WebUser实体。
然后,按照示例使用Sonata Admin非常简单,无需进行任何调整即可管理不同列表中的两个集合。
例如First Admin Class:
<?php
namespace App'PreorderBundle'Admin;
use Sonata'AdminBundle'Admin'Admin;
use Sonata'AdminBundle'Datagrid'ListMapper;
use Sonata'AdminBundle'Datagrid'DatagridMapper;
use Sonata'AdminBundle'Form'FormMapper;
class UserAdmin extends Admin
{
protected $baseRouteName = 'preorder_user';
protected $baseRoutePattern = 'preorder_user';
protected function configureFormFields(FormMapper $formMapper)
第二类管理员:
namespace App'SecurityBundle'Admin;
use Sonata'AdminBundle'Admin'Admin;
use Sonata'AdminBundle'Datagrid'ListMapper;
use Sonata'AdminBundle'Datagrid'DatagridMapper;
use Sonata'AdminBundle'Form'FormMapper;
class UserAdmin extends Admin
{
protected $baseRoutePattern = 'user';
protected $baseRouteName = 'user';
protected function configureFormFields(FormMapper $formMapper)