Drupal 7 如何在Drupal 7中通过电子邮件地址加载用户对象?
一直在谷歌和Drupal文档上疯狂搜索与D6相同的东西 D7中的user_load函数接受UID,而D6版本足够灵活,可以允许使用电子邮件地址 有什么线索可以让我在D7中达到同样的目的吗Drupal 7 如何在Drupal 7中通过电子邮件地址加载用户对象?,drupal-7,Drupal 7,一直在谷歌和Drupal文档上疯狂搜索与D6相同的东西 D7中的user_load函数接受UID,而D6版本足够灵活,可以允许使用电子邮件地址 有什么线索可以让我在D7中达到同样的目的吗 谢谢在Drupal论坛上得到了答案。基本上包括直接从数据库加载与电子邮件相关联的用户Id,然后在成功时运行user_load function my_module_load_user_by_mail($mail){ $query = db_select('user', 'u'); $uid = $query
谢谢在Drupal论坛上得到了答案。基本上包括直接从数据库加载与电子邮件相关联的用户Id,然后在成功时运行user_load
function my_module_load_user_by_mail($mail){
$query = db_select('user', 'u');
$uid = $query->fields('u', array('uid'))->condition('u.uid', $mail)->execute()->fetchField();
if($uid){
return user_load($uid);
}else{
return FALSE;
}
}
改为调用模块函数并传递电子邮件
$user = my_module_load_by_mail($mail);
。。。或者您可以只使用user\u load\u by\u mail:作为后台,其代码依赖于传递给的$conditions参数,该参数在8中已被弃用 下面是我在代码方面的尝试,这可能是将来用户从邮件()加载的代码
<?php
function load_user_by_email( $email )
{
$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'user')
->propertyCondition('mail', $email);
$result = $query->execute();
// not found?
if (!isset($result['user'])) return;
// found, keys are uids
$uids = array_keys($result['user']);
$account = user_load($uids[0]);
return $account;
}