Intereting Posts
CodeIgniter – Правильный способ ссылки на другую страницу в представлении Выберите nodeValue, но исключаем дочерние элементы. Как преобразовать массив в строки, разделенные запятой, в шаблоне smarty? Получение результатов заявления Как функция spl_autoload_register () работает с классами и интерфейсами, если они в настоящее время не определены? Что означает последний шанс, данный PHP? Неустранимая ошибка: допустимый размер памяти 25165824 байт исчерпан (пытался выделить 31436096 байт) скручиваться через уже открытое гнездо Как изменить имена тегов XML с помощью PHP? Как обнаружить, если элемент XML пуст, используя DOMDocument в PHP? Glob не работает, когда имя каталога имеет специальные символы, такие как квадратные скобки "" Базовое преобразование чисел произвольного размера (PHP) Безопасное хранение конфиденциальных данных в базе данных Перенос загруженного файла на удаленный сервер Функция: bcmod недоступен Соединение с WebSocket с «ws: //mydomain.com: 8084 /? Peer_id = 123» не выполнено: ошибка при установлении соединения: net :: ERR_CONNECTION_TIMED_OUT

Yii :: app () -> user-> id не возвращает пустой результат

У меня проблема, она может быть маленькой, но я не мог найти решение для этого. Yii: app () -> user-> getId () или Yii: app () -> user-> id не возвращает значение. он просто возвращает пустой результат. Но я установил идентификатор в свой класс UserIdentity.

в моем классе UserIdentity у меня это,

public function getId() { return $this->id; } 

Я устанавливаю id в функции autheticate (). если я сам там показывал, он отображает идентификатор, но не в функции getId (). Пожалуйста, помогите мне в этом.

Заранее спасибо.

Дханендран Раджагопал.

Рефакторите свою функцию getId (), как это!

 public function getId(){ return $this->getState('id'); } 

Эта проблема возникает, когда вы устанавливаете пользовательские состояния в своей Identity. Вы пытаетесь установить состояние, а затем получите атрибут!

Не уверен, что вы используете стандартный класс UserIdentity, но в стандарте один id является частным атрибутом, а в Yii условные атрибуты _ перед ними, поэтому он будет выглядеть следующим образом:

 public function getId() { return $this->_id; } 

Поскольку это переменная private, вы не можете получить доступ к ней с помощью Yii::app()->user->_id . Функция getId() является волшебной функцией, когда вы запускаете Yii::app()->user->id , она видит, что атрибут id отсутствует, поэтому ищет функцию с именем getId() и запускает ее, если она существует.

Если вы используете стандартный класс, вам необходимо изменить это, как вы указали в своем комментарии ниже:

 $this->_id = $user->user_id //underscore added before id