【问题标题】:Laravel 5.6 ERR_TOO_MANY_REDIRECTS on GET requestLaravel 5.6 ERR_TOO_MANY_REDIRECTS 对 GET 请求
【发布时间】:2019-09-21 22:39:08
【问题描述】:

我有一个处理表单验证的自定义请求类。此表单使用“GET”,并将过滤掉用户可以在页面上看到的所有结果。

我的开始日期规则:

'date_start' => 'nullable|date|required_with:date_end',

正在引发一条消息:

ERR_TOO_MANY_REDIRECTS

我的控制器如下所示:

public function index (ApprovedSubmissionsFilterRequest $request)
{

    ...

我认为这是因为当验证失败时,它会将 GET 请求发送回 index 方法,该方法再次失败验证并重定向回 index 方法等。

如何避免这个循环?我不想使用 POST 请求而不是 GET。

这是我的路线:

Route::get('formSubmission', 'FormSubmissionController@index')
 ->name('formSubmission.index');

谢谢。

注意(编辑):

并非所有验证错误都会导致此问题 - 似乎只有 required_with 会导致问题。之前有人提到过here

【问题讨论】:

标签: laravel laravel-5.6 laravel-validation laravel-request


【解决方案1】:

我在我的项目中尝试了您的代码,但无法重现该问题。那么您是否真的使用了正确的验证规则,因为从文档中,required_with 只有当您尝试验证的其他字段存在于请求中时才会生效。因此,在您的情况下,date_start 不应出现在请求中,date_end 应存在才能进行此验证:

required_with:foo,bar,...

只有在存在任何其他指定字段时,验证中的字段才必须存在且不能为空。

  • 同样从你提到的github问题,你可以在异常处理程序中调试ValidationException被抛出时会发生什么

  • 您的最后一个注意事项,您是否尝试过所有验证规则,但如果通过了那一条?

【讨论】:

  • 是的,我试图通过仅输入 2 个日期中的 1 个来强制显示消息。其他验证规则成功运行(例如,如果我将nullable 更改为required,它将重定向回错误消息)这就是我最困惑的原因。我将查看异常处理程序,但对我来说这似乎是一种奇怪的行为。感谢您回复我。
  • 我建议创建一个自定义规则类并编写自己的逻辑!
猜你喜欢
  • 2018-12-22
  • 1970-01-01
  • 2015-07-23
  • 1970-01-01
  • 1970-01-01
  • 2019-04-21
  • 2019-12-20
  • 2020-02-14
  • 2020-05-30
相关资源
最近更新 更多