ユーザーオブジェクトのカスタムフィールドをプログラムで変更しようとしていますが、ほとんど成功しません。関数を使用して、field_get_items
のようなオブジェクトのフィールドを設定します。ただし、セッターバージョンは除きます。
私はできるようです:
$account = user_load($GLOABALS['user']->uid);
$edit = array(
'field_custom' => array(
'und' => array(
0 => array(
'value' => $lead_id
)
)
)
);
user_save($account, $edit)
しかし、これを行うにはもっと良い方法があるはずです。
任意の助けいただければ幸いです。ありがとう!
エンティティモジュールラッパー を使用します。
エンティティAPIは、エンティティを簡単に処理し、提供されたエンティティプロパティ情報モジュールを活用するために使用できるいくつかのラッパークラスを提供します。ラッパーを使用して、プロパティ情報にアクセスしたり、既知のプロパティをループしたり、記述されたデータ値を取得/設定したりできます。
エンティティモジュール をインストールして、次のようにします。
$user = user_load($GLOBALS['user']->uid);
$obj = entity_metadata_wrapper('user', $user);
$obj->field_custom = $lead_id;
$obj->save();
$ GLOBALSは http://php.net/manual/en/reserved.variables.globals.php