2011-09-03 75 views

回答

1

在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); 
1

只爲背景,user_load_from_mail()的代碼依賴於傳遞給user_load_multiple()一個$條件參數已在8

0被棄用

這裏是我將來可能會用到user_load_from_mail()中的代碼的代碼。

<?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; 
} 

Nb。理論上,由於drupal堅持電子郵件是獨一無二的,所以不需要檢查返回的2+值。

相關問題