1

全球$用户;

$items = field_get_items('user', $user, 'field_patientid', $user->language);

我在用户实体上有一个字段,并且在调试中总是得到 FALSE 值。

在我的数据库中,我有正确的实体类型,即用户。为什么我没有得到任何值?

我可以使用以下方法提升价值:

$user_fields->field_patientid['und']['0']['value'];

为什么上面提到的语句不起作用?

4

1 回答 1

3

如果您查看 的代码field_get_items(),您会注意到您要查找的字段信息需要已经存在于$user对象中才能由函数返回。

global $user不提供现场数据。

来自http://api.drupal.org/api/drupal/developer%21globals.php/global/user/7#comment-13744

全局用户对象包含来自 Drupal 核心的一些基本数据。它不会自动包含来自其他模块的数据,包括核心配置文件模块。要获取用户对象中的所有数据,您需要执行完整的user_load()

于 2012-04-09T20:32:20.807 回答