Symfony2 + Doctrine から始めます。
ユーザー オブジェクト (fos_user) を含むテーブルがあり、スキーマには「配列」タイプのロール列が含まれています。
Doctrine は、このタイプのフィールドを php 'array' から 'longtext' (mysql の場合) にシリアライズすることで保存します。
したがって、次のユーザーが DB に保存されているとします。
User1: array(ROLE_ADMIN, ROLE_CUSTOM1)
User2: array(ROLE_ADMIN, ROLE_CUSTOM2)
User3: array(ROLE_CUSTOM2)
コントローラーで、ROLE_ADMIN が設定されたすべてのユーザーを選択したいと考えています。User1とUser2を直接返す DQL クエリを作成する方法はありますか? または、すべてのユーザーをフェッチして、Doctrine でロール列を非シリアル化し、それぞれに対してin_array('ROLE_ADMIN', $user->getRoles())を実行する必要がありますか?
マニュアルの DQL 部分を検索しましたが、これまでのところ、私のニーズに似たものは見つかりませんでした...
UPD:機能するクエリコードを含む同じことについての質問が見つかりました