Не удается аутентифицировать пользователя в Cake PHP 4.1

Я установил последнюю настройку ph торта, и когда я пытаюсь войти в систему, я получаю эту ошибку

Аргумент 1, передаваемый в Cake\Http\Session::_overwrite(), должен иметь тип array, задано значение NULL

Мой код

$user = $this->Auth->identify();
if ($user) {
    $this->Auth->setUser($user);
    return $this->redirect($this->Auth->redirectUrl());
} else {
    $this->Flash->error(__('Username or password is incorrect'));
}

Когда я проверяю $user, он дает мне идентифицированного пользователя, но позже выдает ошибку выше.


person sujeet patra    schedule 25.11.2020    source источник
comment
Пожалуйста, прочтите и следуйте документации book.cakephp.org/4. /en/tutorials-and-examples/cms/   -  person Salines    schedule 25.11.2020
comment
@Salines Спасибо, но я уже упоминал об этом, но не нашел решения.   -  person sujeet patra    schedule 25.11.2020
comment
Всякий раз, когда вы получаете сообщение об ошибке, опубликуйте сообщение об ошибке complete и включите соответствующую трассировку стека (вы найдете оба в своем CakePHP /logs/)! В вашем конкретном случае вы должны проверить все ошибки (очистить журналы, запустить свой код, проверить журналы), так как ваша проблема означает, что $_SESSION superglobal является null, что означает, что сеанс, возможно, был запущен неправильно, что может быть связано с дополнительными ошибки.   -  person ndm    schedule 25.11.2020


Ответы (1)


Удалите тип массива в Session.php в функции _overwrite в поставщике. как показано ниже кода. Это работа для меня. /vendor/cakephp/cakephp/src/Http

protected function _overwrite( &$old, array $new): void{
 if (!empty($old)) {
  foreach ($old as $key => $var) {
   if (!isset($new[$key])) { 
    unset($old[$key]);
   }
  }
 }
 foreach ($new as $key => $var) {
   
   $old[$key] = $var;


 }

}
person Deepak Tyagi    schedule 13.01.2021