2012-04-09 5 views
1

グローバル$ user;Drupal 7でフィールド値をプルアップできません。これはバグですか?

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

私はユーザーエンティティ上にフィールドを持っていますが、私は常にデバッグでFALSEの値を取得します。

私のデータベースには、ユーザーである正しいエンティティタイプがあります。なぜ値が得られないのですか?

私が使用して値をプルアップすることができています:

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

なぜ上記の文は動作しませんか?

答えて

3

field_get_items()のコードを見ると、探しているフィールド情報が関数によって返されるためにはすでに$userオブジェクトにある必要があることがわかります。

ただし、global $userはフィールドデータを提供しません。

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

からグローバルユーザオブジェクトは、Drupalのコアからのいくつかの基本的なデータが含まれています。 には、 コアプロファイルモジュールを含む他のモジュールからのデータは自動的に含まれません。ユーザーオブジェクト内のすべてのデータを取得するには、 をフルuser_load()にする必要があります。

+0

ありがとうございます。 – jini

関連する問題