【问题标题】:Laravel - Validator double - ERR_TOO_MANY_REDIRECTSLaravel - 验证器双精度 - ERR_TOO_MANY_REDIRECTS
【发布时间】:2017-04-30 00:07:54
【问题描述】:

您好,有超过 1 个用于付款程序的表格

这里是我的付款步骤

第 1 步 - 表单输入数据;
第 2 步 - 验证 Step 1 的数据;
第 3 步 - 表单输入其他数据;
第 4 步 - 验证 Step 2 的数据;

在第二次验证中,如果验证器失败我返回...

return redirect()->back()->withErrors($validator)->withInput();

问题是,如果第二次验证失败,它会在浏览器中给我这个错误

ERR_TOO_MANY_REDIRECTS


我认为是因为它重定向()->back() 到前一个 Step 1 等到前一个验证器...并进入循环。

现在我已经解决了返回 View

return View('staff.cedola', $data)->withErrors($validator);

这是正确的方法吗?

【问题讨论】:

  • 为什么第 1 步和第 2 步在同一条路线上?更喜欢拆分它们......这将导致更少的问题。你可以有类似myroute/step/1 然后myroute/step/2...另外,请在您的控制器和视图中分享一些代码,以便我们可以为您提供更多帮助...

标签: php laravel validation laravel-5.1


【解决方案1】:

在您的中间件或construct() 方法中,您需要检查URL 是否为页面。如果是当前页面,则需要跳过重定向。

下面是例子,希望你明白。

//if under verificated page no need check to avoid keep redirect
if (!request()->is('member/verified-profile'))
{
    //check Member Porfile Verification
    $this->beforeFilter('@checkUserProfileVerification');
    if (!request()->is('member/verified-mobile'))
    {
        //check Member Mobile Verification
        $this->beforeFilter('@checkUserMobileVerification');
    }
}

【讨论】:

    猜你喜欢
    • 2016-03-01
    • 1970-01-01
    • 2021-07-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多