繁体   English   中英

显示用户实体SonataAdminBundle

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM