Laravel 控制器的 `update` 函数

7 浏览
0 Comments

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}}>


AGILITY:
{{$tet->agility}}

->
agility}}>


{{Form::hidden('_method','PUT')}}
{{Form::close()}}

\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');
}

0
0 Comments

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令牌。如果仍然无法解决问题,可以尝试刷新页面或参考其他解决方案。

0
0 Comments

问题出现的原因是HTML结构错误,表单被放在了<table>标签内部,而应该放在外面。解决方法是将表单放在<table>标签外部,这样问题就解决了,不需要CSRF令牌。

0