当我更新值时,我在 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');
喵喵时光机
达令说
隔江千里