Gibt es eine Möglichkeit, abzufragen, ob array-Feld enthält einen bestimmten Wert in Doctrine2?
Beginnend mit Symfony2 + Lehre.
Ich habe eine Tabelle mit User-Objekten (fos_user), für die mein schema enthält eine Rollen Spalte eines 'array' geben.
Lehre speichert Felder dieses Typs zu serialisieren Sie von php 'array' zu 'langer Text' (in mysql der Fall).
Also sagen wir mal ich habe die folgenden Benutzer gespeichert in DB:
User1: array(ROLE_ADMIN, ROLE_CUSTOM1)
User2: array(ROLE_ADMIN, ROLE_CUSTOM2)
User3: array(ROLE_CUSTOM2)
Jetzt in meinem controller ich auswählen möchten, die alle Benutzer mit ROLE_ADMIN gesetzt.
Gibt es eine Möglichkeit zu schreiben, eine DQL-query, die direkt zurück mich User1 und User2?
Oder benötige ich zum abrufen aller Benutzer zu haben, die Lehre zu unserialize Rollen-Spalte und dann für jeden von Ihnen tun in_array('ROLE_ADMIN', $user->getRoles())?
Suchte ich die DQL Teil der Bedienungsanleitung, aber bisher nicht zu finden, die etwas ähnliches für meine Bedürfnisse...
UPD: Gefunden Frage über die gleiche Sache, die enthält eine funktionierende Abfrage-code
- Danke für den link 😀
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie einfach
LIKE
- Anweisung in diesem Handbuch beschrieben (ja, auch auf serialisierte Objekte).Ich würde vorschlagen, Sie erstellen Sie ein entity-Klasse für die Rollen und verbinden Sie ihn mit der Entität "Benutzer" durch ManyToMany Vereins.