Laravel : 在表单验证失败时重定向到其他 url 而不是之前的

Laravel : redirect to other url not previous on failed form validation

注意:我不要想要重定向到上一个url。

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

我检查了 AuthenticatesAndRegistersUsers、ValidatesRequests、UrlGenerator。我发现它使用 header 引用信息将我重定向回之前的 url.

有什么办法可以在 AuthenticatesAndRegistersUsers traits , [=33= 中设置]Register 方法,如果此方法发生验证错误,则将我重定向到此特定 url 而不是使用以前的 url ?

只需编写您自己的 postRegister() 方法,并在其中进行您自己的验证和重定向。这就是它的设计方式 - 因此您可以重载您想要自定义的任何方法。

我通过修改位于

的 AuthenticateAndRegisterUsers.php 文件解决了这个问题

\vendor\laravel\framework\src\Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers.php

我添加了这一行: return 重定向('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());
}