php - 在 laravel 中,该路由不支持 POST 方法。支持的方法:GET、HEAD Plz
问题描述
当我更新值时,我是 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');
解决方案
使用命名路由并为您的路由命名,并且我已经修复了您的路由问题以接受我们必须使用的 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>
如果你不想使用命名路由,那么你可以使用url
laravel 的方法。
<form action="{{ url('post/'.$value[0]->id) }}" method="post"> @csrf
/**Your rest of html form*/
</form>
谢谢
推荐阅读
- node.js - Angular 消耗 express web api,请求错误
- javascript - Angular 材质一键打开菜单
- android - 如何在任何活动中随时显示对话框
- oracle - oracle pragma SERIALLY_REUSABLE、RESTRICT_REFERENCES 和 INLINE
- javascript - 将 Highcharts 与 PerfectScrollbar 一起使用时,鼠标滚轮事件在 Firefox 中无法正常工作
- ios - 从第二个警报视图按“确定”时,进度 hud 未显示
- react-native - 不同堆栈导航器中的相同屏幕
- java - JVM(HotSpot)内在方法到底是什么?
- javascript - 如何使用 CSS Grids 制作自动平衡的内容列
- python - 更新字典中的引用变量不起作用