Bonjour,

j'aimerai comprendre le fonctionnement de roles dans la gestion des utilisateurs dans symfony 4

J'ai implémenté une class Player avec UserInterface. Si j'ai bien compris cela m'impose d'importer 5 fonctions obligatoires.

Je bloque sur la gestion du Json

voici mon code


Entity Player
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
...
class Player implements UserInterface
{
 const ROLESALLOWED = ['ROLE_PLAYER', 'ROLE_POLISTE'];
 
..
/**
* @var array
*
* @ORM\Column(type="json")
* @Assert\Choice(choices=Player::ROLESALLOWED, message="ROLE INVALIDE.")
* 
*/
private $roles = [];
...
public function getRoles()
{
 $roles = $this->roles;
 
 // Afin d'être sûr qu'un user a toujours au moins 1 rôle
 if (empty($roles)) {
  $roles[] = 'ROLE_PLAYER';
 }
 return array_unique($roles);
}
 
public function setRoles(array $roles): void
 {
  $this->roles = $roles;
 }
PlayerController
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
...
$player->setPassword($passwordCrypt)
 ->setConfirmedAt($today)
 ->setRoles(['ROLE_PLAYER']);
...
J'ai un retour comme quoi le ROLE_PLAYER est invalide. Message = ROLE INVALIDE

La structure de ma table pour la colonne "roles" :
type : longtext
interclassement : UTF8mb4_general_ci
null : non
commentaires : DC2Type:json
...

Est-ce vraiment du Json ? quel est le bon format ?

J'ai également des problèmes dans mes requêts SQL sur cette colonne ?

Avez-vous des conseils ?

merci pour votre retour