Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Symfony3 jak przechowywać role użytkowników w bazie danych

Oto, co zrobiłem, aby pozbyć się problemu,

Zdefiniuj role w /app/config/security.yml jak poniżej,

role_hierarchy:
    ROLE_ADMIN:         [ROLE_ADMIN]
    ROLE_SUPER_ADMIN:   [ROLE_SUPER_ADMIN, ROLE_ALLOWED_TO_SWITCH]
    ROLE_TEACHER:       [ROLE_TEACHER]
    ROLE_STUDENT:       [ROLE_STUDENT]
    ROLE_PARENT:        [ROLE_PARENT]

w kontrolerze, pobierz role z /app/config/security.yml za pomocą następującego kodu

$roles = $this->getParameter('security.role_hierarchy.roles');

i to jest kod do ról w typie formularza,

$roles = $this->getParent('security.role_hierarchy.roles');

a następnie w typie formularza (tutaj jest to wybór wielokrotny)

->add('roles', ChoiceType::class, array(
    'attr'  =>  array('class' => 'form-control',
    'style' => 'margin:5px 0;'),
    'choices' => 
    array
    (
        'ROLE_ADMIN' => array
        (
            'Yes' => 'ROLE_ADMIN',
        ),
        'ROLE_TEACHER' => array
        (
            'Yes' => 'ROLE_TEACHER'
        ),
        'ROLE_STUDENT' => array
        (
            'Yes' => 'ROLE_STUDENT'
        ),
        'ROLE_PARENT' => array
        (
            'Yes' => 'ROLE_PARENT'
        ),
    ) 
    ,
    'multiple' => true,
    'required' => true,
    )
)

Edytuj Role użytkownika muszą być zdefiniowane w /app/config/security.yml jak poniżej

role_hierarchy:
    ROLE_ADMIN:         [ROLE_ADMIN]
    ROLE_SUPER_ADMIN:   [ROLE_SUPER_ADMIN, ROLE_ALLOWED_TO_SWITCH]
    ROLE_TEACHER:       [ROLE_TEACHER]
    ROLE_STUDENT:       [ROLE_STUDENT]
    ROLE_PARENT:        [ROLE_PARENT]


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ssh najpierw z mysqldb w Pythonie

  2. jak działa indeksowanie B-drzewa w mysql

  3. Lista tagów SQL i filtrowanie tagów

  4. Jak sprawić, by klucz podstawowy tabeli MySQL był automatycznie zwiększany z pewnym prefiksem?

  5. Mysql Nie można było nawiązać połączenia, ponieważ maszyna docelowa aktywnie je odrzuciła