Mysql
 sql >> база данни >  >> RDS >> Mysql

Symfony3 как да съхранява потребителски роли в базата данни

Ето какво направих, за да се отърва от проблема,

Дефинирайте роли в /app/config/security.yml както е по-долу,

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]

в контролера, вземете ролите от /app/config/security.yml, като използвате следния код

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

и това е кодът на ролите във вида на формата,

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

и след това във вида на формуляра, (тук е множествен избор)

->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,
    )
)

Редактиране Потребителските роли трябва да бъдат дефинирани в /app/config/security.yml както по-долу

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. Качване на множество изображения с Codeigniter, запазващ само един път на файла към MySQL база данни

  2. MySQL ALTER TABLE увисва

  3. Дизайн на база данни за съхранение на чат съобщения между хора

  4. Регистърът на буквите е чувствителен към оператора where в laravel

  5. Неуспешно надграждане на SonarQube от 4.5.2 на 5.0