用户登录时如何更新 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 列?的主要内容,如果未能解决你的问题,请参考以下文章