Эффективное обновление поля таблицы при каждом запросе - PullRequest
0 голосов
/ 28 октября 2018

Я хочу обновлять поле таблицы пользователя при каждом запросе, если пользователь авторизован.Я не сталкивался с такой задачей раньше.Я пытался записать в файл AppServiceProvider.php:

public function boot()
{
    if(Auth::id()) {
        $user = User::find(Auth::id());
        $user->updated_at = Carbon::now()->setTimezone("America/Los_Angeles");
        $user->save();
    }
}

Но в этом случае я не мог передать доступ авторизованному пользователю.

Можно ли получить доступ?поставщику услуг авторизованному пользователю?

Или решить эту проблему с помощью создания middleware ?

Примечание: Я выполняю эту задачу, чтобы найтивремя последней активности пользователя.

Правильно ли найдено решение?Есть ли нагрузка на сервер?

1 Ответ

0 голосов
/ 28 октября 2018

, создав новое промежуточное ПО, попробуйте это

php artisan make:middleware UserActivityUpdateMiddleware

UserActivityUpdateMiddleware

<?php

namespace App\Http\Middleware;

use Closure;

class UserActivityUpdateMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if(Auth::User()) {
            $user = User::find(Auth::user()->id);
            $user->updated_at = Carbon::now()->setTimezone("America/Los_Angeles");
            $user->save();
        }
        return $next($request);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...