Laravel Carbon 时区错误

3
我有一个带有认证的laravel 5.2应用程序。我构建了一个自定义的全局中间件,该中间件会更新每个用户的“last_seen”列。
注意:这是一个在请求之后运行的中间件。
我使用“UTC”时区,以便在世界任何地方计算差异时都不会出现错误。
一切正常,符合预期,直到我退出登录。当我退出登录时,“last_seen”列会更新为我的当前时区“罗马尼亚”的时间。我不知道为什么会这样,因为我从未声明过除“UTC”之外的时区。
以下是我的中间件代码:
<?php

namespace App\Http\Middleware;

use Auth;
use Closure;
use Carbon\Carbon;

class LastSeenMiddleware
{
    public function handle($request, Closure $next)
    {
        $response = $next($request);

        if(Auth::check()){
            Auth::user()->last_seen = Carbon::now();
            Auth::user()->save();
        }

        return $response;
    }
}
1个回答

2
我已经找到了解决方案。
显然,在我的表模式声明中,我忘记将last_seen列设置为可空,因此它会随着当前服务器时间戳更新,即使我没有打算这样做。
通过查看默认创建的created_at和updated_at列的源代码,我发现了这一点。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接