у меня есть user
столбец в базе данных, которые имеют viewed_at
столбец с типом date
,
Я хочу обновить это поле при каждом входе пользователя в систему.
Я хочу запустить код при каждом входе пользователя в систему —
$user = User::find(Auth::user()->id);
$user->viewed_at = /* current date */;
$user->save();
Пожалуйста, помогите мне с этим вопросом.
Пожалуйста, не предлагайте мне сделать это в контроллере, на который перенаправлен аутентифицированный человек.
В 5.3 вы можете переопределить authenticated()
метод в Auth\LoginController.php
и поставить логику там. Кроме того, поскольку Laravel всегда получает экземпляр аутентифицированного пользователя, вы можете сохранить один запрос, используя auth()->user()
объект.
use Carbon\Carbon;
....
protected function authenticated()
{
$user = auth()->user();
$user->viewed_at = Carbon::now();
$user->save();
}
Auth
класс обеспечивает Горстка полезных событий. Один из них является Login
,
Послушайте это событие и обновить $user->viewed_at
когда это срабатывает.
Пытаться:
$user->viewed_at = date('Y-m-d H:i:s');