当我更新值时,我在 Laravel 中是新手,然后我遇到了这个问题。Laravel 的消息是“此路由不支持 POST 方法。支持的方法:GET、HEAD”。我也使用这些方法(@csrf_field和{{ method_field('PUT') }}),但结果为零。HTML 表单 <form action="{{ $value[0]->id }}" method="post"> <input type="hidden" name="_token" value="<?php echo csrf_token(); ?>"> <h1>This Is Update Form</h1> <table border="1" id="customers"> <tr> <td>Name</td> <td> <input type="text" name='name' value="{{ $value[0]->name }}"> </td> </tr> <tr> <td>Email</td> <td> <input type="text" name='email' value="{{ $value[0]->email }}"> </td> </tr> <tr> <td colspan="2"> <input type="submit" value="Submit"> </td> </tr> </table> </form>控制器 public function showid($id) { $data =DB::select('select * from student where id =?',[$id]); //DB::table('student')->pluck('id'); return view('std_edit',['value'=> $data]); } public function update(Request $request, $id) { //$data = DB::table('student') //->where('id', $data['id']) //->update(['name'=>$data['name'], 'email'=>$data['email'] ]); $name = $request->input('name'); $email = $request->input('email'); DB::update('update student set name = ? email = ? where id = ?',[$name,$email,$id]); return redirect()->action('StudInsertController@retrieve'); echo "Record updated successfully.<br/>"; //$update = \DB::table('student') ->where('id', $data['id'])->update( [ 'name' => $data['name'],'email' => $data['email'] ]); }路线 Route::get('edit/{id}','StudInsertController@showid'); Route::post('post/id','StudInsertController@update');
3 回答
喵喵时光机
TA贡献1846条经验 获得超7个赞
使用命名路线并为您的路线命名,我还修复了您的路线问题以接受 url 中的参数,我们必须使用{{ param_name}}它在您的情况下{{ id }}
Route::post('post/{id}','StudInsertController@update')->name('update.student');
然后以你的形式
<form action="{{ route('update.student', $value[0]->id) }}" method="post">
@csrf
/**Your rest of html form*/
</form>
如果你不想使用命名路由,那么你可以使用urllaravel 的方法。
<form action="{{ url('post/'.$value[0]->id) }}" method="post"> @csrf
/**Your rest of html form*/
</form>
谢谢
达令说
TA贡献1821条经验 获得超6个赞
表格中的动作是错误的。尝试这个:
<form action="{{ "/post/" . $value[0]->id }}" method="post">
隔江千里
TA贡献1906条经验 获得超10个赞
在您的表单操作 URL 应该像
<form action="{{ 'post/'.$value[0]->id }}" method="post">
在你的路线文件中
Route::post('post/{id}','StudInsertController@update');
这将解决您的问题
- 3 回答
- 0 关注
- 566 浏览
添加回答
举报
0/150
提交
取消