Использование $this, когда не в контексте объекта при использовании функции уничтожения

#session #cakephp #cakephp-3.0

#сессия #cakephp #cakephp-3.0

Вопрос:

Это моя функция входа и выхода из системы в контроллере той же страницы. Когда я использую Session::destroy() при выходе из системы, он выдает мне ошибку «Использование $this, когда не в контексте объекта». А также скажите мне, как мне проверить, активен сеанс или нет. Заранее благодарю вас

 public function login(){
       $session = $this->request->session();  
      $student12 = TableRegistry::get('users');    
         $email=$this->request->data('email');
         $password=$this->request->data('password');
          $query12 = $student12->find();
          $query12->where(['email'=>$email]);
        foreach($query12 as  $datax)
        {
        if($datax['password']===$passwordamp;amp;$datax['email']===$email)
        {   

//Session::write($key, $value);
//Session::read($key);
         $this->redirect(['controller'=>'Panal','action' => 'Home']);
        }else{
          $this->redirect(['controller'=>'Student','action' => 'index']);  
        }
    }
    }

    public function logout(){

      Session::destroy();
       $this->redirect(['controller'=>'Panal','action' => 'Home']);

    }
  

Комментарии:

1. Для аутентификации следует использовать компонент Cakephp Auth. book.cakephp.org/3.0/en/controllers/components /…

2. как выбрать таблицу для аутентификации

3. по умолчанию компонент аутентификации использует таблицу «пользователи» с полями учетных данных имя пользователя и пароль. Вы можете переопределить это. Чтобы узнать больше, вы должны прочитать документацию и это руководство ( book.cakephp.org/3.0/en/tutorials-and-examples /… ). Это очень легко понять.

Ответ №1:

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

 // AppController.php -> initialize method
$this->Auth->config('authenticate', [
    'Form' => ['userModel' => 'Members']
]);
  

Ссылка RTFM: http://book.cakephp.org/3.0/en/controllers/components/authentication.html#configuring-authentication-handlers