[英]display User Entity SonataAdminBundle
我使用symfony 2.8和sonataAdminBundle,在BackOffice中,我喜欢看到两种类型的用户“ Client”和“ Correspondant”,这两个用户具有相同的实体“ User”,并且通过字段“ type”来区分这两个用户,我已经这样创建了AdminClasse:
CorrespondantAdmin
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
我总是有最后一个服务声明的结果的问题(在此问题中,结果始终是“客户端”和“通讯员”视图中的“客户端”
有人可以帮我吗?
您是否清除了缓存? 您的Admin.yml是否正确格式化?
编辑:您可能有两个管理员类相同的路由。 尝试为每个管理员定义自己的路线。 之后,清除缓存。
ClientAdmin
class ClientAdmin extends AbstractAdmin
{
const ROUTE = 'client-user';
protected $baseRoutePattern = self::ROUTE;
protected $baseRouteName = self::ROUTE;
...
CorrespondantAdmin
class CorrespondantAdmin extends AbstractAdmin
{
const ROUTE = 'correspondant-user';
protected $baseRoutePattern = self::ROUTE;
protected $baseRouteName = self::ROUTE;
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.