php - texto - string strip_tags
obtener todos los grupos de los usuarios-sfDoctrineGuardPlugin (2)
Consulte la clase sfGuardSecurityUser: https://github.com/Garfield-fr/sfDoctrineGuardPlugin/blob/master/lib/user/sfGuardSecurityUser.class.php
if ($this->getUser()->hasGroup(''TEST'')) {
//if user is on group TEST
}//end if
// get all groups
$userGroups = $this->getUser()->getGroups();
En sfDoctrineGuardPlugin es:
sfGuardUser:
actAs: [Timestampable]
columns:
first_name: string(255)
last_name: string(255)
//
indexes:
is_active_idx:
fields: [is_active]
relations:
Groups:
class: sfGuardGroup
local: user_id
foreign: group_id
refClass: sfGuardUserGroup
foreignAlias: Users
sfGuardGroup:
actAs: [Timestampable]
columns:
name:
type: string(255)
unique: true
description: string(1000)
relations:
Users:
class: sfGuardUser
refClass: sfGuardUserGroup
local: group_id
foreign: user_id
foreignAlias: Groups
sfGuardUserGroup:
options:
symfony:
form: false
filter: false
actAs: [Timestampable]
columns:
user_id:
type: integer
primary: true
group_id:
type: integer
primary: true
relations:
User:
class: sfGuardUser
local: user_id
onDelete: CASCADE
Group:
class: sfGuardGroup
local: group_id
onDelete: CASCADE
Esta es una relación de muchos a muchos y ¿cómo puedo obtener todos los grupos de usuarios?
- @method Doctrine_Collection
getGroups () Devuelve la colección "Grupos" del registro actual
yo hago:
$this->groups = $this->getUser()->getGuardUser()->getGroups();
este regreso:
Doctrine_Collection data : Array( )
¿Cómo puedo verificar si el usuario está en el grupo TEST?
¡Gracias por la ayuda!
Puede intentar usar una consulta para encontrar grupos de su usuario:
$user_id = $this->getUser()->getGuardUser()->getId();
$groups = Doctrine_core::getTable(''sfGuardGroup'')->create_query(''g'')->innerJoin(''g.users u with u.id= ?'', $user_id);