验证输入抛出该路由不支持 GET 方法。支持的方法:POST。错误

hal*_*ala 5 laravel laravel-5 laravel-validation laravel-5.8

我正在尝试验证输入字段,但是当我使用验证规则时,它会抛出一个:The GET method is not supported for this route. Supported methods: POST.错误。

这是我的控制器

public function delivery(Request $request)
{
    $request->validate([
        'code' =>'required|numeric|size:4'
    ]);

    return view('frontEnd.orderInfo');
}
Run Code Online (Sandbox Code Playgroud)

这是路线:

Route::post('/delivery','orderController@delivery');
Run Code Online (Sandbox Code Playgroud)

这是视图

<form id="loginform" action="{{url('delivery')}}" class="form-horizontal" method="post" role="form" enctype="multipart/form-data">
    @if ($errors->any())
        <div class="alert alert-danger">
            <ul>
                @foreach ($errors->all() as $error)
                    <li>{{ $error }}</li>
                @endforeach
            </ul>
        </div>
    @endif 
    {{method_field('POST')}}
    {{ csrf_field() }}   
    <div style="margin-bottom: 25px" class="input-group">
        <span class="input-group-addon"><i class="glyphicon glyphicon-phone"></i></span>
        <input  type="password" class="form-control" name="code" value="" placeholder="enter code.">
    </div>    
    <div style="margin-top:10px" class="form-group">
        <!-- Button -->
        <div class="col-sm-12 controls">
            <input type="submit" class="btn btn-success" value="submit"/>          
        </div>
    </div>  
</form>
Run Code Online (Sandbox Code Playgroud)

Mar*_*łek 1

您应该确保使用GET方法在路线中显示表单。当您使用验证时,如果验证失败,Laravel 会重定向(使用GET方法)到显示表单的路由。因此,在这种情况下,当您有多个步骤表单时,您应该将数据放入会话中,并处理GET使用验证的步骤的方法。