user_load в поле профиля пользователя?

Я пытаюсь войти в систему пользователей, обнаружив его идентификатор пользователя Facebook. "profile_fbuid" - это (скрытое) поле профиля, которое я создал для входа пользователей с соответствующим идентификатором пользователя facebook. Когда пользователь пытается войти через Facebook, я обнаруживаю его / ее идентификатор пользователя в Facebook, но когда я пытаюсь сопоставить его с соответствующим пользователем Drupal, эта строка не работает:

    $user_exists = user_load(array('profile_fbuid'=>$fbuserid));

Я получаю эту ошибку: предупреждение пользователя: неизвестный столбец 'profile_fbuid'

Я знаю, что означает ошибка, но я не знаю, как найти пользователя, используя поле профиля пользователя.

Спасибо за вашу помощь!

2 ответа

Вы создали настраиваемое поле, которое прикреплено к профилю пользователя и называется profile_fbuid, То, что вы хотите сделать в базе данных, это посмотреть на эту таблицу:

field_data_field_profile_fbuid.

Соответствующие столбцы entity_id, который будет (Drupal) user id, а также field_profile_fbuid_value, который будет содержать значение (UID Facebook).

Там нет поля в users стол называется profile_fbuid, поэтому я предполагаю, что вы создали это поле с помощью модуля профиля пользователя.

Я думаю, что лучше создать запрос, который получает uid этого столбца, а затем передает его user_load() функция.

$query = db_query("select `uid` from {table_name} where `profile_fbuid` = %d ",$fbuserid );

while($result = db_fetch_object($query)){
  $uid = $result->uid ; 
  $user_exists = user_load(array('uid'=>$uid));
}
Другие вопросы по тегам