php - 在 laravel 7.30.4 中不允许此路由发布方法
问题描述
我的 Web 应用程序中有此错误:
此路由不支持 POST 方法。支持的方法:GET、HEAD、PUT、PATCH、DELETE。
但我不明白我的问题在哪里,因为我的路线:列表命令返回:
| | 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>
但返回这个错误,我不知道我做错了。此刻,在我的控制器中,我echo
知道我已经到了
解决方案
你应该使用store
而不是create
in route('calendario.create')
。
create
方法是一个 get 方法,负责创建视图。存储逻辑应该在 store 方法中。如果你想使用Route::resource
。
推荐阅读
- ios - 如何为下面的表格视图设置正确的约束?
- swift - 如何在 swiftui 中限制对 stateobject 的更改
- kubernetes - 我可以获得 storageclasses.storage.k8s.io 支持的访问模式吗?
- sapui5 - SAPUI5 V1.38.39 自动隐藏后台模式下的图片
- php - PHP Foreach 列数据明智
- javascript - React Js超时时如何删除组件
- questdb - 如何使用 postgre jdbc 驱动程序从 questdb 读取大行?
- python-3.6 - 在python中将字符串转换为列表的最佳方法是什么
- javascript - 如何在 websocket 服务器中设置特定的 ip?(node.js)
- data-masking - 为什么指定的角色仍然看到被屏蔽的数据?