Php Laravel 5.2如果用户输入错误的电子邮件或密码,则重定向
我使用的是Laravel 5.2,我使用的是默认登录控制器。 如果用户成功登录,我知道如何重定向用户,但如果用户没有正确输入电子邮件或密码,我不知道如何重定向用户 这是控制器代码Php Laravel 5.2如果用户输入错误的电子邮件或密码,则重定向,php,laravel,laravel-5.2,Php,Laravel,Laravel 5.2,我使用的是Laravel 5.2,我使用的是默认登录控制器。 如果用户成功登录,我知道如何重定向用户,但如果用户没有正确输入电子邮件或密码,我不知道如何重定向用户 这是控制器代码 class AuthController extends Controller { use AuthenticatesAndRegistersUsers, ThrottlesLogins; protected $redirectTo = '/'; public function __
class AuthController extends Controller
{
use AuthenticatesAndRegistersUsers, ThrottlesLogins;
protected $redirectTo = '/';
public function __construct()
{
$this->middleware($this->guestMiddleware(), ['except' => 'getLogout']);
}
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:6|confirmed',
]);
}
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
}
我应该在哪里输入重定向代码?您可以覆盖
AuthController.php
中的sendFailedLoginResponse()
方法,如:
protected function sendFailedLoginResponse(Request $request)
{
return redirect()->route('myCustomRoute')
->withInput($request->only($this->loginUsername(), 'remember'))
->withErrors([
$this->loginUsername() => $this->getFailedLoginMessage(),
]);
}
@Alexey针对Laravel 5.8修改了答案,将其添加到
app\Http\Controllers\Auth\LoginController.php
:
protected function sendFailedLoginResponse(Request $request)
{
return redirect()
->route('login')
->withInput($request->only($this->username(), 'remember'))
->withErrors([
$this->username() => [trans('auth.failed')],
]);
}
我可以只使用redirect()方法,也可以只使用redirect而不使用withInput或Errors吗?当然,可以避免
withInput
和withErrors
。