访问Profile2字段的奇怪行为

时间:2016-08-03 14:14:39

标签: drupal-7 drupal-modules

我正在Drupal 7使用Profile 2 Module。我有一些自定义字段,大部分都运行良好。

我的模块中有一个hook_user_update()函数,我想根据Profile2字段的值采取行动。我正在测试这个作为管理用户编辑用户配置文件并保存。

钩子函数包含以下内容:

var_dump($info[$role]->$field);

并输出:

array(1) {
  ["und"]=>
  array(1) {
    [0]=>
    array(3) {
      ["value"]=>
      string(16) "/producer/my-biz"
      ["format"]=>
      NULL
      ["safe_value"]=>
      string(16) "/producer/my-biz"
    }
  }
}

......这是正确的。所以,我应该很容易得到值(或safe_value)。

但是当我这样做时:

var_dump($info[$role]->$field['und'][0]['value']); 

我明白了:

  

致命错误:无法在第155行的/<...>/sites/all/modules/ssvalidate/ssvalidate.module中使用字符串偏移量作为数组*

当我这样做时:

var_dump($info[$role]->$field['und']);

我明白了:

  

NULL

这怎么可能?当我查看整个场数组时,它包含了所有内容。一旦我尝试访问该(嵌套)数组的元素,事情就会变得混乱。

有没有人知道会发生什么事?

0 个答案:

没有答案