Drupal user_save () повторяющийся адрес электронной почты - PullRequest
1 голос
/ 17 декабря 2010

У меня есть модуль, в котором я пытаюсь создать несколько пользователей.

$newUser = array(
        'name' => "Bob",
        'pass' => "pass",
        'mail' => "a@a.com",
        'status' => 1,
        'init' => "a@a.com"
);
$newUserObject = user_save(null, $newUser1);

Если пользователь полностью готов и создан с тем же почтовым адресом, я не получаю false возвращается, я получаюсуществует пользовательский объект, который все готово.Можно ли как-то сказать, что пользователь готов?

Ответы [ 3 ]

4 голосов
/ 17 декабря 2010

Вы можете попробовать вызвать user_load с адресом электронной почты, прежде чем пытаться создать пользователя, чтобы проверить, возвращает ли он объект пользователя. Вот пример ( заимствовано отсюда ):

//search by email
$account = user_load(array('mail' => check_plain($email)));
if ($account->uid) {
  //user found
} else {
  //user NOT found
}
0 голосов
/ 23 ноября 2014

Чтобы сделать это в Drupal 7, вам нужно использовать другую функцию, например:

//search by email
$account = user_load_by_mail(check_plain($old_user['email_address']));
if ($account->uid) {
  //user found
} else {
  //user NOT found
}

как это - функция для D7

0 голосов
/ 19 декабря 2010

Вы можете попробовать поискать пользователя перед его созданием.Предполагая drupal 6:

user_search('search', {email}, TRUE);

Или просто запросите запрос напрямую и посмотрите, вернется ли запрос FALSE.

db_result(db_query('SELECT name FROM {users} WHERE LOWER(mail) = LOWER('%s'), $email));

http://api.drupal.org/api/drupal/modules--user--user.module/function/user_search/6

...