在Drupal 6中,您可以使用类似于以下代码的代码:
function example_user($op, &$edit, &$account, $category = NULL) {
switch($op) {
case 'load':
$account->fb_id ='xyz'
break;
}
}
在Drupal 7中,hook_user_load()
的文档说明如下:
由于
user_load_multiple()
中的静态缓存,您不应该使用此挂钩来修改{users}表本身返回的用户属性,因为从缓存加载时可能会导致不可靠的结果。
为什么我会吸引用户而不仅仅是用户?
可以为此添加属性吗?
http://api.drupal.org/api/drupal/modules--user--user.api.php/function/hook_user_load/7
答案 0 :(得分:2)
你得到一个用户对象数组,因为钩子是从user_load_multiple()调用的,它通常调用DrupalDefaultEntityController::load(),然后调用DrupalDefaultEntityController::attachLoad()。
可以添加自定义属性,但不能覆盖从“{users}”表加载的默认属性;从文档中报告,在这种情况下,从缓存加载用户对象时可能会出现问题,这正是实体API通常所做的。