GET请求上的Laravel 5.6 ERR_TOO_MANY_REDIRECTS

时间:2019-05-03 11:23:54

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

我有一个自定义的Request类,用于处理表单的验证。此表单使用“ 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提到过它。

1 个答案:

答案 0 :(得分:0)

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

  

required_with:foo,bar,...

     

正在验证的字段必须存在,并且仅当存在其他指定字段时才为空。

  • 还从您提到的github问题中,您可以在异常处理程序中调试抛出ValidationException时发生的情况

  • 您的最后一个笔记,您是否尝试过所有验证规则,但如果通过则不行?