Добрый вечер! Мои изучения Laravel продолжаются.
Разобрался я с самим процессом авторизации в системе, разобрал модель базовую, от которой модель пользователей наследуется, изучил, что лежит в трейтах, валидацию и всё в таком духе. Был вдохновлён, пока не столкнулся вот с чем.
Необходимо на каждом обновлении странички проверять пользователя, не кинули ли ему бан, не разжаловали ли у него админские права, а так же ставить метку последнего посещения.
Я сделал это просто, как мне показалось. Создал посредника и повесил его на всю группу роутеров, внутри сотворил сие:
public function handle($request, Closure $next, $guard = null)
{
if (Auth::check()) {
$model = new UserModel();
$userID = Auth::id();
// Проверяем наличие бана у пользователя
if (($userBlock = $model->checkBlock($userID)) !== true) {
// Завершаем сессиию
Auth::logout();
// и перенаправляем на форму авторизации с сообщением
return redirect()->to(route('auth::form'))->with([
'result_message' => trans('auth.blocked'),
'result_data' => $userBlock
]);
}
// Обновляем метку visited_at
$model->updateVisitedAt($userID);
}
return $next($request);
}
Работает, всё проверяет и метку времени в базе обновляет (простым запросом сам делаю, ибо updated_at и created_at из другой оперы - не подходят). А теперь понимаю, что не могу получить экземпляр пользователя через свою же модель, которая наследуется от Illuminate\Database\Eloquent\Model и использует трейт Illuminate\Auth\Authenticatable.
При запросе из посредника метода updateVisitedAt пытаюсь внутри этого метода вывести $this->getAttributes(), но там пусто... Как же так? А не должны ли туда пролиться данные, раз в Auth:user() данные у меня есть? Просветите, буду благодарен...
P.S. Провайдер использовал и database, и eloquent. Чувствую, что что-то не прицепил к модели или к посреднику, но чего именно - не понимаю...
Offtop: Выражаю благодарность каждому пользователю этого сервиса :-) На днях просил помощи на форуме, так вспомнил былое высокомерие "великих программистов", и ответов к тому же не получил. Эта площадка всегда помогала мне узнать что-то новое :-)