Arhn - архитектура программирования

Получить время после выхода пользователя Yii2

Hello World!
я создал в пользовательской таблице last_activity, чтобы проверить, когда пользователь вошел в систему, как изменить значение на 0000-00-00 00:00:00 после выхода пользователя из системы.

 public function actionLogout()
    {

        $event = $this->getUserEvent(\Yii::$app->user->identity);
      /*  $account = $this->finder->findAccount()->byClient($client)->one();
        $account->user->updateAttributes(['last_activity' => '0000-00-00 00:00:00']);*/
        $this->trigger(self::EVENT_BEFORE_LOGOUT, $event);

       $logout = \Yii::$app->getUser()->logout();
       /* if ($logout){
            $module = \Yii::$app->getModule('user');
            $module->updateAttributes(['last_activity'=>'0000-00-00 00:00:00']);
        }*/
        $this->trigger(self::EVENT_AFTER_LOGOUT, $event);
      //  \Yii::$app->user->updateAttributes(['last_activity' => 0]);
      //  User::deleteLast();
    //    \Yii::$app->user->updateAttributes(['last_activity' => '0000-00-00 00:00:00']);
       //  $this->updateAttributes(['last_activity' => '0000-00-00 00:00:00']);
       // $this->user->updateAttributes(['last_activity' => null]);
       // return Yii::$app->user->updateAttributes(['last_ip'=> 1]);
          return $this->redirect(site/index);
    }

Просмотреть файл Cabinet-panel.php

  <?php
        echo Menu::widget([
            'items' => [
               ////
                [
                    'label' => Yii::t('main', "Logout"),
                    'url' => null,
                    'options' => ['class' => 'li-logout'],
                    'template' => '<a id="link-logout">{label}</a>'
                ],
            ],
            'options' => [
                'class' => 'nav nav-pills nav-stacked'
            ],
            'activeCssClass' => 'active',
            'route' => Yii::$app->request->url,
            'activateItems' => true,
        ]);
        ?>


common.js вот функция, которая срабатывает, когда пользователь нажимает на тег привязки

function logout() {

    $(document).on('click', '#link-logout', function () {
        $.post(getLang() + '/user/security/logout/');
    });

}

logout();

04.03.2020

  • 0000-00-00 00:00:00 :) вернуть запрос при выходе из системы и сохранить дату выхода в БД. 04.03.2020
  • Вы можете обновить с помощью Yii::$app->user->updateAttributes(['last_ip'=> 1, 'last_activity'=>'0000-00-00 00:00:00']);, если оба находятся в одной таблице? 04.03.2020
  • последняя строка не работает, извините, я не объяснил, что это не работает для last_ip 04.03.2020
  • @Dlk, не могли бы вы, сэр, объяснить, как это сделать? 04.03.2020
  • Я не очень понимаю Yii, поэтому я не могу дать вам полный ответ, извините! сделайте запрос на обновление в вашем public function actionLogout() с идентификатором пользователя и значением обновления, которое вы хотите изменить в базе данных. что-то вроде этого: $user->status = 2; $user->save(true, ['status']); статус - это значение, которое вы хотите изменить в моем примере. это может помочь stackoverflow.com/questions/34753487/ 04.03.2020
  • Я пытался сделать что-то подобное вчера, но это не сработало ` function logout() { $(document).on('click', '#link-logout', function () { $.post(getLang() + '/пользователь/безопасность/выход/'); }); $.ajax({ url: getLang() + 'пользователь/безопасность/выход из системы', тип: 'POST', данные: { 'last_activity': '000000000000000' }, dataType: 'json', успех: функция (данные) { data['user']['last_activity'] = 'last_activity' } }) } logout();` 04.03.2020
  • Это не сработает! поскольку вы смешиваете ajax с php, оба языка программирования разные, добавьте var userid = "<?php echo $_SESSION['userid'];?>"; в свой код ajax и отправьте его в logout.php, затем выполните запрос, как я сказал в своем предыдущем комментарии. в этой функции public function actionLogout() не в этой function logout() { 04.03.2020
  • каков тип столбца last_activity datetime? 04.03.2020
  • @MuhammadOmerAslam да, братан :D 04.03.2020
  • какое значение по умолчанию установлено для столбца 05.03.2020
  • ` Yii::$app-›User-›updateAttributes(['last_activity' =› date('Y/m/d h:i:s a', time())]) ` 05.03.2020
  • @MuhammadOmerAslam Я хочу использовать это значение позже, чтобы показать, находится ли пользователь в сети или в автономном режиме ... если это имеет смысл, сэр :) 05.03.2020
  • @MuhammadOmerAslam тип — datetime (6), а значение по умолчанию — None. 05.03.2020
  • @MuhammadOmerAslam Пожалуйста, сэр, я не могу дождаться вашего ответа, я видел ваш профиль и очень уважаю ваши знания. 06.03.2020

Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..