user_load в поле профиля пользователя? - PullRequest
0 голосов
/ 01 апреля 2012

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

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 31 мая 2012

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

field_data_field_profile_fbuid.

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

0 голосов
/ 01 апреля 2012

В таблице 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));
}
...