MethodNotAllowedHttpException($others);验证中出现错误时(Laravel 5.5)
我有两条路线:MethodNotAllowedHttpException($others);验证中出现错误时(Laravel 5.5),laravel,laravel-5,validate-request,Laravel,Laravel 5,Validate Request,我有两条路线: Route::post('/post_2', 'TestController@post_2') ->name('post_2'); Route::post('/result', 'TestController@result') ->name('result'); 和TestController,如下所示 public function post_2(){ return view('post_2View'); } public function
Route::post('/post_2', 'TestController@post_2')
->name('post_2');
Route::post('/result', 'TestController@result')
->name('result');
和TestController,如下所示
public function post_2(){
return view('post_2View');
}
public function result(\App\Http\Requests\Post_2Request $request){
return "Successful";
}
后视图
<form action="{{route('result')}}" method="post">
{{ csrf_field() }}
<input type="text" name="checkValidate">
<input type="submit" value="Submit">
</form>
public function rules()
{
return [
'checkValidate'=>'required'
];
}
public function messages() {
return [
'checkValidate.required'=>"This field is required"
];
}
当我在checkValidate输入中有数据时,一切正常,但当请求文件返回错误时,我在浏览器中看到错误
**
* Throw a method not allowed HTTP exception.
*
* @param array $others
* @return void
*
* @throws \Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException
*/
protected function methodNotAllowed(array $others)
{
throw new MethodNotAllowedHttpException($others);
}
请告诉我,我怎样才能解决它。
谢谢。由于您没有向
/post_2
发送任何数据,请使用get
动词post
请求
Route::get('/post_2', 'TestController@post_2')
->name('post_2');
或者你可以两者都用
Route::match(['get', 'post'],'/post_2', 'TestController@post_2')
->name('post_2');
因为当您在验证后返回时,它是get请求,因为您没有向
/post_2
发送任何数据,所以使用get
动词代替post
请求
Route::get('/post_2', 'TestController@post_2')
->name('post_2');
或者你可以两者都用
Route::match(['get', 'post'],'/post_2', 'TestController@post_2')
->name('post_2');
因为当您在验证后返回时,它是get request我找不到发生此异常的原因,但我找到了一个解决方案,如果验证失败,请不要返回
方法NotAllowedHttpException
$validator = Validator::make($request->all(),[
'name' => 'required'
]);
if ($validator->fails()) {
return response()->json(['message'=>'Name field is required'],422);
}
我找不到发生此异常的原因,但我找到了一个解决方案,如果验证失败,请不要返回
MethodNotAllowedHttpException
$validator = Validator::make($request->all(),[
'name' => 'required'
]);
if ($validator->fails()) {
return response()->json(['message'=>'Name field is required'],422);
}
帮你自己一个忙,从你的
结果
路径返回一个重定向,以避免对显示当前页面的方法产生任何混淆。你使用post('/post_2'
我的意思是当你将数据发布到/post_2
时?这是我用来调用post_2的代码。{csrf u field()}
帮自己一个忙,并从结果返回重定向,以避免对显示当前页面的方法产生任何混淆。您使用post('/post_2'
我的意思是当您将数据发布到/post_2
时?这是我用来调用post_2的代码。{csrf u field() }}
当我尝试在我的项目中执行此操作时,我仍然存在一个问题。此页面不起作用。localhost将您重定向了太多次。请尝试清除您的cookie。ERR\u too\u many\u重定向
@user2486您更改了什么以及在哪条路径中遇到此错误?当我在示例中更改时我在这里发布,效果很好。但在我的真实项目中,错误发生了。因此肯定有一些路由与此路由相关post_2
或递归调用项目的任何路由,查找并检查此路由?这是我在真实项目中的路由。route::match(['get','post'],'/questionExcel/add','admin\part\u 3\edit\u part\u 3\u测试_adminController@add_questionExcel')->name('part_3.add.questionExcel');Route::post('/questionExcelConfirm/add','admin\part_3\edit_part_3\u test_adminController@add_questionExcelConfirm')->name('part_3.add.questionExcelConfirm')
我阅读了一个Excel文件,并在将其保存到数据库之前将其显示以供检查。如果您需要更多代码,我将发送给您。谢谢@user2486当我尝试在我的项目中执行此操作时,仍然存在问题。此页面不起作用localhost将您重定向了太多次。请尝试清除您的cookies。ERR\u太多\u重定向
@user2486您更改了什么以及在哪条路径中出现此错误?当我在此处发布的示例中更改时,它运行良好。但在我的实际项目中,错误发生了。因此肯定存在与此路径相关的路径post_2
或任何递归调用您的项目的路径,请查找并检查此路径?这是我的路径在实际项目中。Route::match(['get','post'],'/questionExcel/add','admin\part\u 3\edit\u part\u 3\u test_adminController@add_questionExcel')->name('part_3.add.questionExcel');Route::post('/questionExcelConfirm/add','admin\part_3\edit_part_3\u test_adminController@add_questionExcelConfirm')->name('part_3.add.questionExcelConfirm');
我阅读了一个Excel文件,并在将其保存到数据库之前将其显示以供检查。如果您需要更多代码,我将发送给您。谢谢@user2486