Преобразование массива в формат Drupal - PullRequest
1 голос
/ 30 марта 2010

Это утверждение дает мне значение, которое я хочу в Drupal (а именно последнюю роль пользователя):

global $user; return (end($user->roles));

однако мне нужно преобразовать его в этот формат:

return array(
  0 => array('value' => value for value),
  // You'll usually want to stop here. Provide more values
  // if you want your 'default value' to be multi-valued:
  1 => array('value' => value for value),
  2 => ...
);

и я понятия не имею, как (также, этот формат - многомерный массив?) ...

Есть идеи? Спасибо за любую помощь, Тео.

Ответы [ 3 ]

0 голосов
/ 30 марта 2010

Почему бы просто:

global $user;
print_r($user->roles);

Это покажет вам роли пользователей. Я не уверен, почему вы хотите последний. Он уже возвращается в том формате, который вы запрашиваете. Оттуда зависит от вас, чтобы получить роль, которую вы ищете.

Чтобы переместить их в массив с ключами:

global $user;

$result = array();
foreach ($user->roles as $key => $value) {
  $result[] = array($key => $value);
}
return $result;
0 голосов
/ 30 марта 2010

Спасибо за помощь - вы помогли мне понять это больше сейчас. Оказывается, это не сработало, потому что вы должны использовать идентификационный номер, а не имя. Итак, окончательный код был:

global $user;
return array(
0 => array('value' => end($user->roles))
);

Итак, я думаю, что вам нужно построить многомерный массив, не так ли? чтобы это было в правильном формате ...

0 голосов
/ 30 марта 2010

Я не уверен, к чему именно вы стремитесь. Для записи форма $ user-> role будет

array(
  rid => 'role_name',
  ...
)

Используя приведенное выше утверждение, вы на самом деле получаете не позднюю роль пользователя, а роль пользователя с наибольшим идентификатором.

Полагаю, вы хотите получить подобный формат, но вы не можете этого понять.

array(
  0 => array(rid => 'role_name'),
  1 => array(rid => 'role_name'),
  ...
)

если это так, вы можете получить его с помощью простого цикла foreach:

$result = array();
foreach ($user->roles as $key => $value) {
  $result[] = array($key => $value);
}
return $result;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...