Laravel:在失败的表单验证时重定向到之前没有的其他URL

时间:2015-04-08 06:55:56

标签: php redirect laravel laravel-5

注意:我不要想要重定向到以前的网址。

我的注册表单是主页上的模式,我将表单发布到auth / register但是当验证错误发生时,它会将我重定向回主页。我想要重定向到另一个路由'auth / register',其中将显示验证错误。

我浏览了AuthenticatesAndRegistersUsers,ValidatesRequests,UrlGenerator。我发现它使用标题引用信息将我重定向回以前的URL。

我是否可以设置 AuthenticatesAndRegistersUsers 特征, postRegister 方法,如果验证错误发生在这个方法然后将我重定向到这个特定的网址,而不是使用以前的网址?

2 个答案:

答案 0 :(得分:3)

只需编写自己的postRegister()方法,然后在那里进行自己的验证和重定向。这就是它的设计方式 - 所以你重载任何你想要自定义的方法。

答案 1 :(得分:1)

我通过修改位于以下位置的AuthenticateAndRegisterUsers.php文件解决了这个问题:

  

\厂商\ laravel \框架\ SRC \照亮\基金会\验证\ AuthenticatesAndRegistersUsers.php

我添加了这一行:             返回重定向(' auth / register') - > withErrors($ validator);

    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());
}