Подтвердить что ты не робот

Попытка обновить столбец "updated_at" при входе пользователя в систему. Ошибка: четырехзначный год не найден. Данные отсутствуют.

Я пытаюсь обновить столбец updated_at до текущего времени, каждый раз, когда пользователь входит в систему.

Но я получаю эту ошибку:

InvalidArgumentException Не удалось найти четырехзначный год. Отсутствуют данные.

код:

$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');
    }
}
4b9b3361

Ответ 1

Вы можете использовать метод Touch() для этого:

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

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

Ответ 2

Для одного я бы не использовал столбец updated_at как имя по умолчанию для временных меток.

Вам будет лучше с last_login

И просто используйте метод даты PHP.

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

Надеюсь, что это поможет.

Ответ 3

Я думаю, что вы случайно присваиваете значение вместо синтаксиса массива. например:

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

вместо:

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