以下是我的刀片:<form action="{{route('ans1.eval')}}" method="post"> <br> <input type="radio" name="evaluate" class="evaluate" value=10> 1 <input type="radio" name="evaluate" class="evaluate" value=15> 1.5 <input type="radio" name="evaluate" class="evaluate" value=20> 2 <input type="radio" name="evaluate" class="evaluate" value=25> 2.5 <input type="radio" name="evaluate" class="evaluate" value=30> 3 <button type="submit" class="btn btn-primary" align="right">Evaluate Answer</button> <input type="hidden" value="{{ Session::token() }}" name="_token"></form>以下是我的路线:Route::post('/evaluateans', [ 'uses' => 'AnswerController@postEvaluateAns', 'as' => 'ans1.eval', 'middleware' => 'auth']);以下是我的验证:public function postEvaluateAns(Request $request){ $this->validate($request, [ 'evaluate' => 'required' ]);}以下是未选择评估时的错误:MethodNotAllowedHttpException in RouteCollection.php line 218
1 回答
潇潇雨雨
TA贡献1833条经验 获得超4个赞
来自关于验证的 laravel 文档
如果验证规则通过,您的代码将继续正常执行;但是,如果验证失败,则会抛出异常,并自动将正确的错误响应发送回用户。在传统 HTTP 请求的情况下,将生成重定向响应。
当您的验证失败时,它会使用一个方法重定向回来GET(重定向使用该GET方法),但是如果您显示的formfrom aroute不是GET一个,则会引发此错误。
所以你必须用路线显示表格GET。
作为替代方案,您可以手动创建验证器,以便GET在验证失败时选择重定向路由,例如:
public function postEvaluateAns(Request $request)
{
$validator = Validator::make($request->all(), [
'evaluate' => 'required'
]);
if ($validator->fails()) {
return redirect('failed_validation_GET_route')
->withErrors($validator)
->withInput();
}
return redirect()->route('success_GET_route')
->with('status', 'Success!');
}
- 1 回答
- 0 关注
- 208 浏览
添加回答
举报
0/150
提交
取消