为了账号安全,请及时绑定邮箱和手机立即绑定

在 laravel 中,此路由不支持 POST 方法。支持的方法:GET、HEAD Plz

在 laravel 中,此路由不支持 POST 方法。支持的方法:GET、HEAD Plz

PHP
MMMHUHU 2021-12-03 16:09:08
当我更新值时,我在 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>

谢谢


查看完整回答
反对 回复 2021-12-03
?
达令说

TA贡献1821条经验 获得超6个赞

表格中的动作是错误的。尝试这个:

    <form action="{{ "/post/" . $value[0]->id }}" method="post">


查看完整回答
反对 回复 2021-12-03
?
隔江千里

TA贡献1906条经验 获得超10个赞

在您的表单操作 URL 应该像

<form action="{{ 'post/'.$value[0]->id }}" method="post">

在你的路线文件中

Route::post('post/{id}','StudInsertController@update');

这将解决您的问题


查看完整回答
反对 回复 2021-12-03
  • 3 回答
  • 0 关注
  • 566 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信