用户行上的Laravel日期时间现在正在更新

时间:2018-02-07 02:26:28

标签: php laravel datetime laravel-5

我正在按照从这里向我的应用添加上次访问过的功能的教程

https://medium.com/@grmcameron/implementing-last-visited-last-seen-in-laravel-237dbbed9027

基本上,添加一个中间件,将其添加到Kernel.php中的$ middlewareGroups,添加一个datetime列

$table->dateTime('last_online')->nullable();

中间件如下;

namespace App\Http\Middleware;
use Illuminate\Support\Facades\Auth;

use Closure;

class LastOnline
{
    public function handle($request, Closure $next)
    {
        if (!Auth::check()) {
            return $next($request);
        }

        $user = Auth::user();

        $user->update([
            'last_online' => new \DateTime(),
        ]);

        return $next($request);
    }
}

但由于某种原因,该列不会在每个请求上传。

如果我dd($user)它返回正确的用户,但根本没有更新,也没有生成错误。

什么都没有。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

确保在可填写部分

下的模型中记录了last_online
protected $fillable = ['last_online','...','...'];

答案 1 :(得分:0)

您可能想尝试

$user = Auth::user($yourid);
$user->last_online = new \DateTime()
$user->save();

或者

$user = Auth::user($yourid);
$user->last_online = date('Y-m-d H:i:s');
$user->save();

答案 2 :(得分:0)

问题是我需要将last_online添加到User模型中的$ fillable数组。