Когда пользователь входит в систему, я хочу, чтобы они были перенаправлены на страницу своего профиля, а не на главную страницу. У меня есть метод в другом контроллере, который получает профиль пользователя. Не уверен, что мне нужно сделать, поскольку профиль пользователя принимает переменную имени пользователя, но когда пользователь входит в систему, я только прошу указать адрес электронной почты и пароль.Перенаправление на страницу профиля после авторизации в laravel
Мой файл маршрута, но следующий метод находится в другом контроллере от контроллера аутентификации.
Route::get('/user/{username}', [
'uses' => '[email protected]',
'as' => 'profile.index',
'middleware' => ['auth'],
]);
Мой следующий метод находится в моем контроллере аутентификации.
public function postSignin(Request $request)
{
$this->validate($request, [
'email' => 'required',
'password' => 'required',
]);
if (!Auth::attempt($request->only(['email', 'password']), $request->has('remember'))) {
return redirect()->back()->with('info' , 'Could not sign you in with that info.');
}
$user= User::where('username', $username)->first();
return redirect()->route('profile.index')
->with('info', 'You are now signed in.')
->with('user', $user);
}
Ниже в моем профиле контроллер ..
public function getProfile($username)
{
$user= User::where('username', $username)->first();
if (!$user){
abort(404);
}
return view('profile.index')
->with('user', $user);
}
Я пробовал это, но я получаю имя пользователя undefined. Не знаю, как я могу это сделать, когда я только передаю по электронной почте и пароль – Slillz
Это всего лишь пример, помощник, я не знаю вашу структуру базы данных, но вы должны, факт, что вам нужно передать что-то на этот маршрут, чтобы правильно его построить –
Да, в моей базе данных мое имя пользователя - «имя пользователя», но я получаю ... Отсутствуют необходимые параметры для [Route: profile.index] [URI: user/{username}]. – Slillz