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