Php Laravel:在表单验证失败时重定向到其他url,而不是以前的url
注意:我不想重定向到以前的url 我的注册表格是主页上的一个模式,在这里我将表格发布到auth/register,但当发生验证错误时,它会将我重定向回主页。我想重定向到另一个路由“auth/register”,其中将显示验证错误 我通过了AuthenticatesAndRegistersUsers、ValidateRequests和UrlGenerator。我发现它使用标题引用信息将我重定向回以前的urlPhp Laravel:在表单验证失败时重定向到其他url,而不是以前的url,php,redirect,laravel,laravel-5,Php,Redirect,Laravel,Laravel 5,注意:我不想重定向到以前的url 我的注册表格是主页上的一个模式,在这里我将表格发布到auth/register,但当发生验证错误时,它会将我重定向回主页。我想重定向到另一个路由“auth/register”,其中将显示验证错误 我通过了AuthenticatesAndRegistersUsers、ValidateRequests和UrlGenerator。我发现它使用标题引用信息将我重定向回以前的url 有没有办法在AuthenticatesAndRegistersUserstraits,po
有没有办法在AuthenticatesAndRegistersUserstraits,postRegister方法中设置,如果此方法发生验证错误,则将我重定向到此特定url而不是使用以前的url?只需编写自己的
postRegister()
方法,并在其中执行您自己的验证和重定向。这就是它的设计方式-因此您可以重载任何要自定义的方法。只需编写您自己的postRegister()
方法,并在其中执行您自己的验证和重定向。这就是它的设计方式-因此您可以重载任何要自定义的方法。我通过修改AuthenticateAndRegisterUsers.php文件解决了此问题,该文件位于:
\vendor\laravel\framework\src\illumb\Foundation\Auth\AuthenticatesAndRegistersUsers.php
我加了一行:
返回重定向('auth/register')->withErrors($validator)
我通过修改AuthenticateAndRegisterUsers.php文件解决了此问题,该文件位于: \vendor\laravel\framework\src\illumb\Foundation\Auth\AuthenticatesAndRegistersUsers.php 我加了一行: 返回重定向('auth/register')->withErrors($validator)
谢谢你的建议。虽然不是我所期望的,但解决了我的问题。我希望laravel有一些神奇的功能来定制重定向url heheIf您使用FormRequest验证-laravel确实有神奇的功能来设置重定向url。但是它不在Auth部分的trait中。谢谢你的建议。虽然不是我所期望的,但解决了我的问题。我希望laravel有一些神奇的功能来定制重定向url heheIf您使用FormRequest验证-laravel确实有神奇的功能来设置重定向url。但是它不在Auth部分的trait中。虽然它不是标准的,我想你可以在某个地方覆盖postrester函数。我强烈建议你不要这样做。一旦您通过composer update或install更新laravel,这些文件/代码将被替换。我做了这种修复,所以我不推荐:)是的,但是如果你在AuthController中覆盖postRegister方法,那就不会有任何问题,除非他们在Lightning中更改postRegister方法。虽然这不是标准的,我想你可以在某处覆盖postRegister函数。我强烈建议你不要这样做。一旦您通过composer update或install更新laravel,这些文件/代码将被替换。我做了这种修复,所以我不推荐:)是的,但是如果你在AuthController中覆盖postRegister方法,那就不会有任何问题,除非他们在illumb中更改postRegister方法。
public function postRegister(Request $request)
{
$validator = $this->registrar->validator($request->all());
if ($validator->fails())
{
/* $this->throwValidationException(
$request, $validator
); */
return redirect('auth/register')->withErrors($validator)->withInput();
}
$this->auth->login($this->registrar->create($request->all()));
return redirect($this->redirectPath());
}