post laravel 7.30.4 中这条路线不允许的方法

post method not allowed to this route in laravel 7.30.4

我的 Web 应用程序出现此错误:

The POST method is not supported for this route. Supported methods: GET, HEAD, PUT, PATCH, DELETE.

但我不明白我的问题在哪里,因为,我的 route:list 命令和 return 这个:

|        | GET|HEAD  | calendario                                 | calendario.index         | App\Http\Controllers\EventController@index                             | web        |
|        | POST      | calendario                                 | calendario.store         | App\Http\Controllers\EventController@store                             | web        |
|        | GET|HEAD  | calendario/create                          | calendario.create        | App\Http\Controllers\EventController@create                            | web        |
|        | GET|HEAD  | calendario/{calendario}                    | calendario.show          | App\Http\Controllers\EventController@show                              | web        |
|        | PUT|PATCH | calendario/{calendario}                    | calendario.update        | App\Http\Controllers\EventController@update                            | web        |
|        | DELETE    | calendario/{calendario}                    | calendario.destroy       | App\Http\Controllers\EventController@destroy                           | web        |
|        | GET|HEAD  | calendario/{calendario}/edit               | calendario.edit          | App\Http\Controllers\EventController@edit                              | web        |

我想使用 route::resource 在我的完整日历中创建活动。

我的路线:

Route::resource('calendario', 'EventController');

并且在我看来我有一个检查以了解我是否编辑、存储或显示该路径:

<form action="{{ Request::is('calendario/*/edit') ? route('calendario.update', $event->id) : route('calendario.create') }}" method="POST">
                    {{ csrf_field() }}

                    @if(Route::currentRouteName() == 'calendario.edit')
                        @method('PUT') 
                    @endif

在我的网络浏览器控制台中,我有一条正确的路线:

<form action="http://www.clinicacampoy.local/calendario/create" method="POST">
                    <input type="hidden" name="_token" value="rVb2ycSugwg0weAbZucdI8RzBi9uT7QumGArJOOW">

                    
                    <div class="form-group">
                        <label for="nombre">Nombre</label>
                        <input type="text" class="form-control" name="nombre" id="nombre" value="" aria-describedby="emailHelp" placeholder="Nombre del cliente">
                    </div>
                    <div class="form-group">
                        <label for="fecha-inicio">Fecha-hora Inicio</label>
                        <input type="text" value="" class="form-control" name="fecha_inicio" id="fecha-inicio">
                    </div>
                    <div class="form-group">
                        <label for="fecha-inicio">Fecha-hora fin</label>
                        <input type="text" value="" class="form-control" name="fecha_fin" id="fecha-fin">
                    </div>
                    <input type="submit" class="btn btn-info" value="Crear Cita">
                </form>

但是 return 这个错误,我不知道我做错了。此时此刻,在我的控制器中,我有一个 echo 用于知道我到达了

您应该在 route('calendario.create') 中使用 store 而不是 create

create方法是一个get方法,负责创建view。存储逻辑应该在存储方法中。 不过如果你想使用 Route::resource