【发布时间】:2020-04-19 04:03:58
【问题描述】:
我不知道为什么我会遇到这个问题。 我有一个表,我在其中调用了新路由来打开一个更新视图
Route::get('update_view/{id}', ['as' => 'update_view', 'uses' => 'admin\study_material\StudyMaterialController@update_view']);
提交后,路由下面的表单被调用
Route::post('update/{id}', ['as' => 'update', 'uses' => 'admin\study_material\StudyMaterialController@update']);
现在,问题是当更新页面被调用时,它会正确显示更新页面,但是当提交表单时,我收到错误,不允许使用 post 方法。使用 Get 或 Put。但我检查了 url,它显示了 update_view/ 3 而不是 update/3。
Route::group(['prefix' => 'StudyMaterial', 'as' => 'StudyMaterial.'], function () {
Route::get('view', ['as' => 'view', 'uses' => 'admin\study_material\StudyMaterialController@view']);
Route::get('add', ['as' => 'add', 'uses' => 'admin\study_material\StudyMaterialController@add_view']);
Route::post('add_studyMaterial', ['as' => 'add_studyMaterial', 'uses' => 'admin\study_material\StudyMaterialController@add']);
Route::get('update_view/{id}', ['as' => 'update_view', 'uses' => 'admin\study_material\StudyMaterialController@update_view']);
Route::post('update/{id}', ['as' => 'update', 'uses' => 'admin\study_material\StudyMaterialController@update']);
});
我的表格:
<form action="{{ route('StudyMaterial.update',$data[0]->id) }}" method="POST" class="text-center" enctype="multipart/form-data">
{{csrf_field()}}
<input type="hidden" name="_token" id="_token" value="{{ csrf_token() }}">
<button type="submit>Update</button>
</form>
生成的网址:
- 查看表格以更新文件 => localhost/project/public/StudyMaterial/update_view/13
- 重定向 URL 以将表单提交到控制器 => localhost/project/public/StudyMaterial/update/13
提交表单后应该生成 URL 2。但这里只显示 URL 1,它是 GET 方法。 这发生在我的整个项目中。 提前谢谢你
【问题讨论】:
-
尝试在表单中添加
@method('POST')。 -
更改路线顺序。首先
Route::post('update/{id}'....然后Route::get('update_view/{id}'...
标签: laravel