Пользователь по логину в виде числа

  • 11 Ответов
  • 197 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Nickolay

  • **
  • 10
  • + 0 -
Добрый день!
Подскажите, как решить такую проблему?
Запрашиваю пользователя так:
$user = JFactory::getUser($login);
$aaa = $user->id; // Joomla ID
$bbb = $user->email;   // Email
$ccc = $user->name;
Все хорошо, но когда логин у пользователя чисто числовой (123456) он воспринимается как id пользователя и дает ошибку:
JUser: :_load: Не удалось загрузить пользователя с ID: 123456
Пробовал и так написать:
$user = JFactory::getUser((string)$login); - не помогает(
Как правильно запросить пользователя по числовому логину?

*

beliyadm

  • ********
  • 8359
  • + 1527 -
  • Севастополь == Россия
а зачем запрашивать пользователя по логину, когда логично запрашивать по ID и получать логин?
Код: php
$user = JFactory::getUser(99);

Вообще если честно не помню в API движка, чтобы можно было получать объект getUser через логин
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb

*

Nickolay

  • **
  • 10
  • + 0 -
Ну прочитал, что если передается строка - то воспринимается как логин, если целое число - то id
Так и срабатывает, но когда логин число - проблема

*

beliyadm

  • ********
  • 8359
  • + 1527 -
  • Севастополь == Россия
Ну прочитал, что если передается строка - то воспринимается как логин, если целое число - то id
А где, если не секрет, такое прочитали? Вот же официальная статья, только про ID https://docs.joomla.org/Accessing_the_current_user_object
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb

*

Nickolay

  • **
  • 10
  • + 0 -
в интернете прочитал))) у кого-то
чисто логически, должна быть такая возможность по логину понять хотя бы id

*

Nickolay

  • **
  • 10
  • + 0 -
Если JFactory::getUser не позволяет "официально" и правильно так сделать, то как то в базе пользователей нужно искать по логину, я так понимаю. Может быть просто есть, что-то стандартное, позволяющее по логину определить id.

*

beliyadm

  • ********
  • 8359
  • + 1527 -
  • Севастополь == Россия
Если JFactory::getUser не позволяет "официально" и правильно так сделать, то как то в базе пользователей нужно искать по логину, я так понимаю. Может быть просто есть, что-то стандартное, позволяющее по логину определить id.
Вы опишите задачу полностью, что вы собираетесь делать. Самый распространенный способ выбрать данные пользователя - при знании его ID.
Найти юзера по логину можно простым запросом к БД
Код: sql
select * from #__users where username = 'вася'
Ну или через name, смотря как искать - по имени или логину
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb

*

Nickolay

  • **
  • 10
  • + 0 -
На сайте у меня реферальная система, где партнеры - пользователи Joomla, username - партнерский идентификатор.
Нужно при переходе посетителя с идентификатором username найти все параметры партнера в его пролфиле Joomla, ну и в расширенном профиле.
Все это сделано и работает, но с описанной проблемкой.
Буду очень благодарен (в оговоренных размерах))) если поможете решить эту задачу.
По сути нужно по username найти id Joomla пользователя.
« Последнее редактирование: 04.10.2016, 17:30:09 от Nickolay »

*

Nickolay

  • **
  • 10
  • + 0 -
для моего уровня понимания нужно как-то так:
$iduser = что-то...

*

SmokerMan

  • ********
  • 5329
  • + 689 -
Буду очень благодарен (в оговоренных размерах))) если поможете решить эту задачу.
уже дали выше пример, что еще нужно не совсем понятно)
можно воспользоваться хелпером, который делает то же самое
Код
$user_id = JUserHelper::getUserId($username);

*

Nickolay

  • **
  • 10
  • + 0 -
Re: Пользователь по логину в виде числа
« Ответ #10 : 04.10.2016, 15:33:56 »
Вот теперь понятно)
сейчас попробую

*

Nickolay

  • **
  • 10
  • + 0 -
Re: Пользователь по логину в виде числа
« Ответ #11 : 04.10.2016, 15:40:05 »
Спасибо большое!
Теперь все хорошо, работает