首页 > 解决方案 > Laravel 5.7:验证失败后重定向过多

问题描述

我有一个两步表单,在第一页上的输入得到验证后,将显示第二页上传文件。

以下是文件输入的验证规则:

return [
        'file' => 'mimes:pdf,ps|required', 
    ];

当我尝试在不附加文件的情​​况下提交表单时,我收到消息说我被重定向了太多次

这也是我创建的一个自定义中间件,用于设置 url 所需的语言环境:

public function handle($request, Closure $next)
{
   $locale = $request->segment(1);
   app()->setLocale($locale);
   return $next($request); // this is the marked line
}

我没有第二个表单页面的“get”路由,因为它只会在第一个用户输入被验证后显示。
创建“get”路由后,它仍然无法正常工作,而且我仍然被重定向了太多次

Route::post('/{locale}/ticket/{cat?}', 'TicketController@store')->name('validation');
Route::get('/{locale}/ticket/{cat?}', 'TicketController@store')->name('validation');

我什至尝试这样做:

Route::match(['post', 'get'], '/{locale}/ticket/{cat?},  'TicketController@store')->name('validation');

在阅读了这个之后,但它仍然没有工作并且知道我真的不知道该怎么做。

当第二次验证失败时,我只会被重定向太多次,当我没有require文件(在验证规则中)并且验证没有重定向时,upload-method 会继续进行。

编辑:

这是 TicketController 中请求的上传方法:

public function upload(ValidateUploadedFile $request, $cat = '') {
  // handle first user input
  $file = $request->validated();
  // handle storage of data       
}

我不知道如何解决这个问题。
如果需要更多代码或信息来帮助我,请告诉我!

标签: laravelvalidationredirectroutingmiddleware

解决方案


推荐阅读