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