用户登录时如何更新 updated_at 列?

Posted

技术标签:

【中文标题】用户登录时如何更新 updated_at 列?【英文标题】:How to update the updated_at column when the user logs in? 【发布时间】:2014-06-01 16:51:14 【问题描述】:

我正在尝试将updated_at 列更新为当前时间,每次用户登录时。

但我收到以下错误:

InvalidArgumentException 找不到四位数年份数据丢失

PHP

$input = Input::all();
$remember = (Input::has('remember')) ? true : false;

$auth = Auth::attempt([
    'username' => $input['username'],
    'password' => $input['password'],
    'active' => 1
    ],$remember
);

if ($auth) 

    $user = Auth::user();
    $user->updated_at = DB::raw('NOW()');
    $user->save();

    if ($user->userType==1) 
    
        return Redirect::intended('admin');
    
    elseif ($user->userType==2)
    
        return Redirect::intended('corporate');
    
    elseif ($user->userType==3) 
    
        return Redirect::intended('trainer');
    
    elseif ($user->userType==4) 
    
        return Redirect::intended('user');
    

【问题讨论】:

转储$user->updated_at会得到什么 【参考方案1】:

我不会使用 updated_at 列,因为这是默认的时间戳名称。

你最好使用 last_login

只需使用 php 日期方法。

$user->updated_at = date('Y-m-d G:i:s');

希望这会有所帮助。

【讨论】:

根据您的应用程序,我不明白为什么使用 updated_at 是禁止的。这不就是updated_at的用途吗?【参考方案2】:

您可以为此使用 Eloquent 方法 touch()

//instead of
$user->updated_at = DB::raw('NOW()');
$user->save();

// simply this:
$user->touch();

【讨论】:

【参考方案3】:

我认为您不小心分配了一个值而不是使用数组语法。例如:

Model::create([
    'key'='val'
]);

代替:

Model::create([
    'key'=>'val'
]);

【讨论】:

以上是关于用户登录时如何更新 updated_at 列?的主要内容,如果未能解决你的问题,请参考以下文章

如何从ExtJs网格中删除列?

在 laravel 中登录时更新数据库

用户在express js中登录时如何更新令牌?

在 Symfony 中保存数据库时如何保留 updated_at 日期字段?

只有登录用户才能编辑表单

如何允许用户登录更新/编辑他们的个人资料设置/信息