2016-05-04 10 views

Antwort

1

Ja. Sie müssen choice type und seine expanded Option (und optional auch die multiple Option) verwenden. Denken Sie daran, dass für die Formulartypen gemeint Optionen in der type_options Option definiert sind:

easy_admin: 
    # ... 
    entities: 
     User: 
      # ... 
      form: 
       fields: 
        - { property: 'roles', type: 'choice', type_options: { expanded: true } } 

Sie können auch die Optionen in der YAML-Datei definieren, wenn Sie wollen:

easy_admin: 
    # ... 
    entities: 
     User: 
      # ... 
      form: 
       fields: 
        - property: 'roles' 
         type: 'choice' 
         type_options: 
         expanded: true 
         choices: { 'ROLE_USER': 'Normal user', 'ROLE_ADMIN': 'Administrator' } 
+0

Vielen Dank für Ihre schnelle Antwort, habe ich versucht, sie beide und wenn ich auf Beim Hinzufügen eines neuen Benutzers habe ich einen Fehler erhalten, der besagt: "Der Wert vom Typ" array "kann nicht in einen gültigen Array-Schlüssel konvertiert werden." Haben Sie eine Vorstellung von der Lösung? –

+0

@AnisAbida Versuchen Sie, den type_options auch 'multiple: true' hinzuzufügen. Und Sie wollen die Schlüssel und Werte umkehren (d. H. ROLE_USER und Normal-Benutzer tauschen usw.) –

0

eine Weile gedauert, aber hier ist ein mögliche Methode eine Checkbox hinzufügen, um die Rolle ROLE_ADMIN an einen Benutzer hinzuzufügen oder zu entfernen:

in Ihrem easyadmin Config, für die Benutzereinheit hinzufügen: - {property: 'hasRoleAdmin', label: 'Is admin', type: checkbox}

Oder für ein Drop-Down, dass die gleiche Sache tut:

- {property: 'hasRoleAdmin', label: 'Role', type: choice, type_options: choices: {0: 'ROLE_USER', 1: 'ROLE_ADMIN'}}} 

In Ihrer Benutzereinheit hinzufügen:

public function hasRoleAdmin() 
{ 
    return $this->hasRole('ROLE_ADMIN'); 
} 

public function setHasRoleAdmin($isAdmin) 
{ 
    if (true == $isAdmin && false == $this->hasRole('ROLE_ADMIN')) { 
     $this->addRole('ROLE_ADMIN'); 

    } 
    if (false == $isAdmin && true == $this->hasRole('ROLE_ADMIN')) { 
     $this->removeRole('ROLE_ADMIN'); 
    } 
    $this->isAdmin = $isAdmin; 
}