Question

Je suis très nouveau pour Drupal, donc faire preuve de patience si cela est une question stupide. Selon le API globals, le global les retours d'objets $user rôles sous forme de tableau:

[roles] => Array(
  [rid] => name
)

Si je fais référence $ user-> rôles, il me donne les noms de rôle.

Court de bouclage comme ceci:

foreach($user->roles as $key => $value){
    error_log("key: " . $key . " ; value: " . $value);
}

Est-il possible de retourner l'ID de rôle (Rid) au lieu du nom de rôle? Je dois faire un traitement conditionnel en fonction des rôles, mais certains de nos rôles sont, et contiens spécifiques à l'entreprise des caractères spéciaux. Il serait beaucoup plus facile de travailler avec l'ID au lieu.

Était-ce utile?

La solution

Vous pouvez utiliser array_key_exists() pour ce faire:

$rid = 42;

if (array_key_exists($rid, $user->roles)) {
  // Do stuff
}

Si vous voulez juste un tableau de RIDs, vous pouvez utiliser array_keys() :

$rids = array_keys($user->roles);

Autres conseils

$rid = 42;
if(isset($user->roles[$rid])) {
  // Do stuff
}

est ce que je l'habitude d'utiliser. Même principe de base, le codage encore plus basique.

array_keys($someArray)

Mark Trapp cites est vraiment utile pour la chasse à travers les clés des nombreux tableaux énormes que Drupal produit - par exemple, les champs de variable $ dans les modèles de vues - Dumping le tout crée un désordre, avec juste les clés que vous pouvez généralement savoir quel élément il est vous avez besoin, et puis juste Dump.

Pour les variables dumping, assurez-vous de vérifier Drupal pour Firebug - fait des décharges énormes, difficiles à manier et bien élégamment séparé de votre code HTML.

Licencié sous: CC-BY-SA avec attribution
Non affilié à drupal.stackexchange
scroll top