高效地更新每个请求的表字段

时间:2018-10-28 07:15:29

标签: laravel laravel-5.7

如果用户被授权,我想在每个请求上更新用户表字段。我以前从未遇到过这样的任务。我试图写在AppServiceProvider.php文件上:

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

但是在这种情况下,我无法对授权用户进行访问

我可以让授权用户访问服务提供商吗?

还是通过创建中间件来解决此问题?

注意:我正在执行此任务以找出用户上一次活动的时间。

找到正确的解决方案了吗?服务器上有负载吗?

1 个答案:

答案 0 :(得分:1)

  

通过创建一个新的中间件来尝试这个

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);
    }
}