我正在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
这怎么可能?当我查看整个场数组时,它包含了所有内容。一旦我尝试访问该(嵌套)数组的元素,事情就会变得混乱。
有没有人知道会发生什么事?