butteff
@butteff
Раз в тысячу лет заправляю свитер в носки

Почему не получается залогиниться, если переопределить массив users в yii2 на точно такой же?

Приветствую, господа. Вместо обычного массива я хочу использовать массив из базы данных. Ранее я так уже делал в ином проекте и это работало отлично, сейчас - нет.

Для начала код:

30c3dab70e0d480d8388bc8405affea4.png

Сейчас к нему пояснения:
1. Я закоменчиваю стандартный массив.
2. Делаю метод конструктора, из которого вызываю иной метод, в котором хочу переопределить массивом из БД (второй кусок закоменченного кода). Не спрашивайте почему бы не делать это сразу в конструкторе, у меня своя атмосфера и задачи (:
3. переопределяю свойство $this->users = $users;

Все ок, но я вижу ошибку при сабмите логин формы:
267153ff2a2b4fdaa2898aeac54684f3.png

Я думал, что массив из БД пришел в ином формате, стал дэбажить и для дебага просто в методе getUsers() переопределяю его на его же стандартный массив (т.е. использую полностью весь код с первого скриншота как на картинке) и ровно та же ошибка, что на втором скриншоте при сабмите логин формы.

Массив переопределился, потому что в контроллере, при:
$user = new User();
var_dump($user->users); die();

Я вижу верный массив.

Почему, получается, ровно точно такой же массив, если его переопределить - не работает?
Что я делаю не так?

UPD:

Эти два варианта реализации при логине дают ту же самую ошибку! Уж вроде бы максимально упрощено, что за магия?

1:
d7a39a2d67984813b0f153f22a485aac.png

2:
a5cb67c10c2940f1ab04386c178688b3.png
  • Вопрос задан
  • 221 просмотр
Решения вопроса 1
mhthnz
@mhthnz
PHP, YII2, Golang, Linux
вместо конструктора используйте init()
public function init() {
    $this->getUsers();
    parent::init();
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы