Php Laravel 5-验证为false时MethodNotAllowedHttpException

Php Laravel 5-验证为false时MethodNotAllowedHttpException,php,validation,exception,laravel-5,Php,Validation,Exception,Laravel 5,每次验证失败时,我都会得到MethodNotAllowedHttpException routes.php Route::post('download', 'UrlController@download'); Route::post('search', 'UrlController@search'); UrlController.php public function download(DownloadRequest $request) { dd($request->all())

每次验证失败时,我都会得到MethodNotAllowedHttpException

routes.php

Route::post('download', 'UrlController@download');
Route::post('search', 'UrlController@search');
UrlController.php

public function download(DownloadRequest $request)
{
    dd($request->all());
}
DownloadRequest.php

public function authorize()
{
    return true;
}

 public function rules()
{
    return [
        'format' => 'required|between:1,13'
    ];
}
name.blade.php

{!! Form::open(['url' => 'download']) !!}

{!! Form::select('format', [
    'Please select format',
    'FormatGrp1' => [1 => 'best', 'p1','p2', 'p3', 'p4'],
    'FormatGrp2' => [6 => 'p5', 'p6']
]) !!}
当选择“请选择格式”并提交表单时,我总是会遇到此错误,因为“请选择格式”的值为0,我指定的值必须介于1和13之间。(请看DownloadRequest.php)


谢谢你的帮助

错误不是来自验证

这是因为它调用URL返回并显示错误。这就是搜索方法


因此,搜索方法中的逻辑原因引发了异常。

我不完全理解该用户试图解释的实际问题或解决方案-我遇到了这个问题,因为我遇到了相同的问题,我想我会描述我在错误中做了什么,以及我如何解决它


对我来说,我正在建立一个用户可以提交照片的网站。当用户点击“添加照片”时,他们会进入一个页面,在该页面中,他们必须选中一个复选框以接受法律免责声明。此带有复选框的表单是POST请求。在他们接受后,他们将被重新定向到照片提交页面。。。这也是一个带有POST请求的表单。这就是我的问题:背对背的帖子请求页面。如果用户在提交表单上输入了无效数据,或者根本没有在字段中输入数据,Laravel会尝试在浏览器中点击“后退”按钮,让表单中充满用户输入的数据。问题是“后退”按钮(或用户访问此页面的方式)来自POST请求,因此无法执行此操作。它给了我上面描述的错误。有一次,我将“法律受理”页面切换到“获取请求”表单,并更新了路径以匹配一切,一切都开始正常工作。就我而言,这是一个愚蠢的错误,我只是希望减轻其他人的这种沮丧,因为他们正在学习在拉雷维尔发展。祝你今天愉快

< P>当你有这个错误时,在你的<代码>($ValueSt>Rebug)({ } < /Cord>)中考虑你将第一次打开视图,并添加<代码> -WiTrror($ValueAudior)< /Calp>

例如:

public function edit($id)
{
    $exams = Exam::all();
    return view('exams.index', compact("exams"));
}
...

public function update(Request $request,$id)
{
     $validator = Validator::make($request->all(),[
            'start' => 'required',
            'end' => 'required|after:start'
        ]);

     if ($validator->fails()) 
     {
      $exams = Exam::all();
      return view('exams.index', compact("exams"))->withErrors($validator);
     }

    //Your update code if validator not fails
}