Laravel 控制器的 `update` 函数
Laravel 控制器的 `update` 函数
我试图将我的新统计数据发送到CharactersController中的update函数,但出现错误:\'MethodNotAllowedHttpException\'。我尝试了方法欺骗,但没有成功。\n这是我的索引页面,我想编辑角色($tet是我正在观察的角色的一行函数):\n
{!! Form::open(['action' => ['CharactersController@update', $tet->id], 'method' => 'POST','id'=>'form1', 'enctype' => 'multipart/form-data']) !!}HP: {{$tet->hp}} -> hp}}> ATTACK: {{$tet->attack}} -> attack}}> LUCK: {{$tet->luck}} -> luck}}> {{Form::hidden('_method','PUT')}} {{Form::close()}} AGILITY: {{$tet->agility}} -> agility}}>
\n在\'uloz()\'函数中,我启用所有数字输入并提交表单。\n这是我的CharactersContrller:\n
public function update(Request $request, $id) { $character = Character::find($id); $character->hp=$request->input('jedna'); $character->attack=$request->input('dva'); $character->luck=$request->input('tri'); $character->agility=$request->input('ctyri'); $character->save(); return redirect('/character'); }
Laravel Controller@update函数出现问题的原因是未正确处理CSRF令牌。解决方法是在表单中添加CSRF令牌,并在Ajax请求中添加CSRF令牌。
首先,需要在视图文件中添加CSRF令牌。可以在表单中添加以下代码:
<meta name="csrf-token" content="{{ csrf_token() }}">
然后,需要在Ajax请求中添加CSRF令牌的头信息。可以使用以下代码:
$.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') } });
如果以上方法仍然无法解决问题,可能是会话过期导致的。可以尝试刷新页面或重新启动XAMPP。
如果仍然无法解决问题,可以参考此链接,其中提供了一些有用的解决方案。
在Laravel Controller@update函数中出现问题,通常是由于未正确处理CSRF令牌所致。解决方法是在表单和Ajax请求中添加CSRF令牌。如果仍然无法解决问题,可以尝试刷新页面或参考其他解决方案。