0

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

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

但在这种情况下,我无法访问授权用户。

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

或者通过创建中间件来解决这个问题?

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

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

4

1 回答 1

1

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

php artisan make:middleware UserActivityUpdateMiddleware

UserActivityUpdate中间件

<?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);
    }
}
于 2018-10-28T07:24:50.550 回答