显示用户实体 SonataAdminBundle
display User Entity SonataAdminBundle
我使用 symfony 2.8 和 sonataAdminBundle,在后台我喜欢看到两种类型的用户 "Client" 和 "Correspondant",这两个用户有相同的实体 "User" 和我通过字段 "type" 区分这两个用户,我已经创建了这样的 AdminClasse:
通讯管理员
class CorrespondantAdmin extends AbstractAdmin
{
public function createQuery($context = 'list')
{
$query = parent::createQuery($context);
$query->andWhere(
$query->expr()->eq($query->getRootAliases()[0] . '.type', ':my_param')
);
$query->setParameter('my_param', 'correspondant');
return $query;
}
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->addIdentifier('nom')
->add('prenom')
->add('email')
->add('civilite')
->add('dateInscrit')
->add('_action', 'actions', array(
'actions' => array(
'show' => array(),
'edit' => array(),
)
))
;
}
ClientAdmin
class ClientAdmin extends AbstractAdmin
{
public function createQuery($context = 'list')
{
$query = parent::createQuery($context);
$query->andWhere(
$query->expr()->eq($query->getRootAliases()[0] . '.type', ':my_param')
);
$query->setParameter('my_param', 'client');
return $query;
}
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->addIdentifier('nom')
->add('prenom')
->add('email')
->add('civilite')
->add('dateInscrit')
->add('_action', 'actions', array(
'actions' => array(
'show' => array(),
'edit' => array(),
)
))
;
}
Admin.yml
app.admin.correspondant:
class: Devagnos\AdminBundle\Admin\CorrespondantAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: "Utilisateurs", label: "Mes Correspondants" }
arguments:
- ~
- Devagnos\UserBundle\Entity\User
- ~
calls:
- [ setTranslationDomain, [AdminBundle]]
public: true
app.admin.client:
class: Devagnos\AdminBundle\Admin\ClientAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: "Utilisateurs", label: "Mes Clients" }
arguments:
- ~
- Devagnos\UserBundle\Entity\User
- ~
calls:
- [ setTranslationDomain, [AdminBundle]]
public: true
我一直是最后一个服务声明的结果的问题(在这个问题上,结果总是 "Client" 和 "Correspondant""client"
有人可以帮助我吗?
你清除缓存了吗?您的 Admin.yml 格式是否正确?
编辑:
对于两个管理员 类,你可能有相同的路由。尝试为每个管理员定义自己的路线。之后清除缓存。
客户端管理员
class ClientAdmin extends AbstractAdmin
{
const ROUTE = 'client-user';
protected $baseRoutePattern = self::ROUTE;
protected $baseRouteName = self::ROUTE;
...
通讯管理员
class CorrespondantAdmin extends AbstractAdmin
{
const ROUTE = 'correspondant-user';
protected $baseRoutePattern = self::ROUTE;
protected $baseRouteName = self::ROUTE;
...
我使用 symfony 2.8 和 sonataAdminBundle,在后台我喜欢看到两种类型的用户 "Client" 和 "Correspondant",这两个用户有相同的实体 "User" 和我通过字段 "type" 区分这两个用户,我已经创建了这样的 AdminClasse:
通讯管理员
class CorrespondantAdmin extends AbstractAdmin
{
public function createQuery($context = 'list')
{
$query = parent::createQuery($context);
$query->andWhere(
$query->expr()->eq($query->getRootAliases()[0] . '.type', ':my_param')
);
$query->setParameter('my_param', 'correspondant');
return $query;
}
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->addIdentifier('nom')
->add('prenom')
->add('email')
->add('civilite')
->add('dateInscrit')
->add('_action', 'actions', array(
'actions' => array(
'show' => array(),
'edit' => array(),
)
))
;
}
ClientAdmin
class ClientAdmin extends AbstractAdmin
{
public function createQuery($context = 'list')
{
$query = parent::createQuery($context);
$query->andWhere(
$query->expr()->eq($query->getRootAliases()[0] . '.type', ':my_param')
);
$query->setParameter('my_param', 'client');
return $query;
}
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->addIdentifier('nom')
->add('prenom')
->add('email')
->add('civilite')
->add('dateInscrit')
->add('_action', 'actions', array(
'actions' => array(
'show' => array(),
'edit' => array(),
)
))
;
}
Admin.yml
app.admin.correspondant:
class: Devagnos\AdminBundle\Admin\CorrespondantAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: "Utilisateurs", label: "Mes Correspondants" }
arguments:
- ~
- Devagnos\UserBundle\Entity\User
- ~
calls:
- [ setTranslationDomain, [AdminBundle]]
public: true
app.admin.client:
class: Devagnos\AdminBundle\Admin\ClientAdmin
tags:
- { name: sonata.admin, manager_type: orm, group: "Utilisateurs", label: "Mes Clients" }
arguments:
- ~
- Devagnos\UserBundle\Entity\User
- ~
calls:
- [ setTranslationDomain, [AdminBundle]]
public: true
我一直是最后一个服务声明的结果的问题(在这个问题上,结果总是 "Client" 和 "Correspondant""client"
有人可以帮助我吗?
你清除缓存了吗?您的 Admin.yml 格式是否正确?
编辑: 对于两个管理员 类,你可能有相同的路由。尝试为每个管理员定义自己的路线。之后清除缓存。
客户端管理员
class ClientAdmin extends AbstractAdmin
{
const ROUTE = 'client-user';
protected $baseRoutePattern = self::ROUTE;
protected $baseRouteName = self::ROUTE;
...
通讯管理员
class CorrespondantAdmin extends AbstractAdmin
{
const ROUTE = 'correspondant-user';
protected $baseRoutePattern = self::ROUTE;
protected $baseRouteName = self::ROUTE;
...