Symfony 4 - EasyAdmin Bundle - значение формы по умолчанию - PullRequest
0 голосов
/ 07 ноября 2019

Привет всем!

Я использую easyadmin для проекта, и я немного запутался. У меня есть пользовательский объект с ролями "ROLE_CUSTOMER" и "ROLE_REPAIRMAN". Я могу отображать и добавлять пользователей в зависимости от их ролей:

entity.yaml:

easy_admin:
  entities:
    Customer:
      label: 'Customer'
      class: App\Entity\User
      list:
        dql_filter: "entity.roles LIKE '%%ROLE_CUSTOMER%%'"
      form:
        title: "Add Customer"
        fields: &userFormFields
          - { property: 'email' }
          - { property: 'civility' }
          - { property: 'lastname' }
          - { property: 'firstname' }
          - { property: 'phone' }
          - { property: 'mobile' }
    Repairman:
      label: 'Repairman'
      class: App\Entity\User
      controller: App\Controller\Admin\RepairmanController
      list:
        dql_filter: "entity.roles LIKE '%%ROLE_REPAIRMAN%%'"
        fields:
          - id
          - company
          - email
          - civility
          - firstname
          - lastname
          - { property: 'isAdminGroup' }
      form:
        title: "Add Repairman"
        fields:
          - { property: 'email' }
          - { property: 'civility' }
          - { property: 'lastname' }
          - { property: 'firstname' }
          - { property: 'phone' }
          - { property: 'mobile' }
          - { property: 'company' }
          - { property: 'vitrage' }
          - { property: 'kbis' }
          - { property: 'siret' }
          - { property: 'isAdminGroup' }

menu.yaml

easy_admin:
  design:
    menu:
      - label: 'Clients'
        icon: 'users'
        entity: 'Customer'
        children:
          - { label: 'Show', entity: 'Customer', params: { action: 'list' } }
          - { label: 'Add', entity: 'Customer', params: { action: 'new' } }
      - label: 'Repairman'
        icon: 'users'
        entity: 'Repairman'
        children:
          - { label: 'Show', entity: 'Repairman', params: { action: 'list' } }
          - { label: 'Add', entity: 'Repairman', params: { action: 'new' } }

Когда я нажимаю добавить клиента,Мне бы хотелось, чтобы его роль была ROLE_CUSTOMER, а когда я нажимал на кнопку добавить ремонтника, его роль была ROLE_REPAIRMAN

Я пытался расширить AdminController, RepairmanController, но не могу получить то, что хочу. Я также попытался установить значение по умолчанию, используя:

- { property: 'roles', type: 'hidden', type_options: { empty_data: "['ROLE_REPAIRMAN']" } }

Здесь у меня ошибка, потому что ему нужен массив, и он интерпретирует значение как строку.

Может кто-нибудь помочь мне понятьэто, пожалуйста? Или у вас есть лучшее решение?

Спасибо!

...