Est-il un moyen de la requête si le tableau champ contient une certaine valeur dans Doctrine2?
De commencer avec Symfony2 + Doctrine.
J'ai une table avec les objets Utilisateur (fos_user), pour qui mon schéma contient un rôles colonne d'une 'array' type.
Doctrine enregistre des champs de ce type par la sérialisation de php 'array' à 'longtext" (en mysql cas).
Donc, disons que j'ai les utilisateurs suivants enregistré en DB:
User1: array(ROLE_ADMIN, ROLE_CUSTOM1)
User2: array(ROLE_ADMIN, ROLE_CUSTOM2)
User3: array(ROLE_CUSTOM2)
Maintenant dans mon contrôleur, je veux sélectionner tous les utilisateurs avec ROLE_ADMIN ensemble.
Est-il possible d'écrire une requête DQL qui serait directement me rendre User1 et User2?
Ou dois-je besoin de récupérer tous les utilisateurs à la Doctrine de unserialize colonne rôles et puis, pour chacun d'entre eux ne in_array('ROLE_ADMIN', $utilisateur->getRoles())?
J'ai cherché sur le DQL partie du manuel, mais jusqu'à présent, n'a pas trouvé quelque chose de semblable à mes besoins...
UPD: Trouvé un question à propos de la même chose qui contient une requête code
- Merci pour le lien 😀
Vous devez vous connecter pour publier un commentaire.
Vous pouvez simplement utiliser
LIKE
la déclaration décrite dans ce manuel (oui, même sur des objets sérialisés).Je vous suggère de créer une classe d'entités de rôles et de le joindre avec l'entité utilisateur par ManyToMany association.