Kulaxyz
@Kulaxyz
Могу лучше

Как реализовать редирект на страницу заполнения профиля при первой авторизации пользователя?

Есть идея в базе данных добавить поле firts_time и по дефолту ставить 1. Потом при входе проверять это поле и редиректить на заполнения профиля, затем менять значение с 1 на 0 после первой авторизации. Но не понимаю, где именно эту проверку организовать, в middleware или как-то через service провайдеры. На форумах не нашёл нормального решения, хотя вопрос вроде должен быть популярным. Буду благодарен за шаблонное решение в такой ситуации, я пока не так силён в Laravel.
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
@jazzus
Создать отношение profile тип hasOne (если профиль в отдельной таблице)
public function profile()
{
 return $this->hasOne('App\Models\Profile','user_id', 'id');
}

создать middelware hasProfile
там прописать
if (!Auth::user()->profile) {
    return redirect()->route('profile');
}
return $next($request);

добавить в роуты
Route::group('middleware' => ['verified','hasProfile'], function () {

});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@NubasLol
protected $redirectTo = '/';

Есть такая переменная в контроллере для регистрации
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы