it-swarm-ko.tech

글로벌 $ user로부터 역할 ID 얻기

나는 Drupal을 처음 접했으므로 이것이 멍청한 질문이라면 저와 함께하십시오. globals API 에 따르면 전역 $user 객체는 역할을 배열로 반환합니다.

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

$ user-> roles를 참조하면 역할 이름이 표시됩니다.

다음과 같은 루핑 부족 :

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

역할 이름 대신 역할 ID를 반환 (제거) 할 수있는 방법이 있습니까? 역할을 기준으로 조건부 처리를 수행해야하지만 일부 역할은 회사마다 다르며 특수 문자를 포함합니다. 대신 ID로 작업하는 것이 훨씬 쉽습니다.

5
EmmyS

array_key_exists() 을 사용하여 다음을 수행 할 수 있습니다.

$rid = 42;

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

RID 배열 만 원하는 경우 array_keys() 을 사용할 수 있습니다.

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

내가 보통 사용하는 것입니다. 동일한 기본 원칙, 훨씬 더 기본적인 코딩.

array_keys($someArray)

as Mark Trapp cite는 Drupal이 생성하는 많은 거대한 배열의 키 (예 : 뷰 템플릿의 $ fields 변수)를 통해 사냥하는 데 정말 유용합니다. 엉망, 키만 있으면 일반적으로 필요한 요소를 파악한 다음 덤프 할 수 있습니다.

덤프 변수의 경우 Drupal for Firebug 를 확인하십시오. HTML에서 크고 다루기 힘든 덤프를 멋지게 & 우아하게 분리시킵니다.

1
James