以下是我的刀片:
<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
答案 0 :(得分:1)
摘自validation上的laravel文档
如果验证规则通过,您的代码将继续正常执行; 但是,如果验证失败,则会引发异常,并且 正确的错误响应将自动发送回用户。在 对于传统的HTTP请求,重定向响应将是 生成。
如果验证失败,它将使用GET
方法(通过重定向使用GET
方法)重定向后退,但是如果您显示,{来自不是form
的{{1}}的{1}}会引发此错误。
因此,您必须使用route
路线显示。
作为替代方案,您可以manually create your validator,以便在失败验证失败的情况下选择重定向GET
路由,例如:
GET