Para saber por medio de código a que grupo o grupos pertenece cierta entidad, como un usuario o un nodo debemos usar GroupRelationship::loadByEntity()
.
La función GroupRelationship::loadByEntity()
en Drupal 9 está relacionada con el módulo de Grupos (Group). Este módulo permite la organización y gestión de contenido en grupos. La función loadByEntity()
sugiere que se está cargando una relación de grupo basada en una entidad específica.
<?php
use Drupal\user\Entity\User;
use Drupal\group\Entity\GroupRelationship;
$user = User::load(8);
$array_group_relationship = GroupRelationship::loadByEntity($user);
print_r($array_group_relationship);
exit;
Entre otras otros valos lo que nos daría esta impresión de print_r es:
- Esto nos carga TODAS las relaciones con los grupos que tenga la entidad y con eso nos muestra el id y otros datos de cada grupo al que pertenece el usuario (de la misma forma funcionaría para una entidad de nodo)
- Si quisieramos mostrar todos los id's de todos los grupos a los que pertenece nuestro usuario, deberíamos hacer un foreach sobre $array_group_relationship.
- Para obtener sólo el id del primer grupo presente en el array $array_group_relationship podemos hacerlo de esta forma:
$array_group_relationship = GroupRelationship::loadByEntity($node);
if (!empty($array_group_relationship)) {
$group_id = reset($array_group_relationship)->getGroup()->id();
}
Con lo que finalmente tendríamos el siguiente código:
<?php
use Drupal\user\Entity\User;
use Drupal\group\Entity\GroupRelationship;
$user = User::load(8);
$array_group_relationship = GroupRelationship::loadByEntity($user);
if (!empty($array_group_relationship)) {
$group_id = reset($array_group_relationship)->getGroup()->id();
}
Lo que estamos viendo en este código:
- Es que estamos cargando al usuario en la variable $user.
- Con $array_group_relationship = GroupRelationship::loadByEntity($user) estamos cargando las relaciones del usuario en un array.
- Si la relación no está vacia, entonces obtenemos sólo el primer elemento del array y con el método ->getGroup()->id() cargamos el id del usuario.
Me pareció interesante el artículo
Añadir nuevo comentario