Laravel Controller @ функция обновления - PullRequest
0 голосов
/ 23 ноября 2018

Итак, я пытаюсь отправить свою новую статистику в функцию обновления в моем CharactersController, но там говорится об ошибке: «MethodNotAllowedHttpException». Я пытался подменить метод, но это не сработало.

Вот мой индекс, в котором я хочу отредактировать символ ($ tet - это функция строки моего персонажа, которую я наблюдаю):

{!! Form::open(['action' => ['CharactersController@update', $tet->id], 'method' => 'POST','id'=>'form1', 'enctype' => 'multipart/form-data']) !!}
<tr>
<td>HP:</td>
<td>{{$tet->hp}}</td>
<td><button class="btn btn-primary" onclick="addValue(1)">+</button></td>
<td><p>-></p></td>
<td><input id="jedna" class="edit" name="hodnota" type="number" disabled="true" value={{$tet->hp}}></td>
</tr>
<tr>
<td>ATTACK:</td>
<td>{{$tet->attack}}</td>
<td><button class="btn btn-primary" onclick="addValue(2)">+</button></td>
<td><p>-></p></td>
<td><input id="dva" class="edit" name="hodnota" type="number" disabled="true" value={{$tet->attack}}></td>
</tr>
<tr>
<td>LUCK:</td>
<td>{{$tet->luck}}</td>
<td><button class="btn btn-primary" onclick="addValue(3)">+</button></td>
<td><p>-></p></td>
<td><input id="tri" class="edit" name="hodnota" type="number" disabled="true" value={{$tet->luck}}></td>
</tr>
<tr>
<td>AGILITY:</td>
<td>{{$tet->agility}}</td>
<td><button class="btn btn-primary" onclick="addValue(4)">+</button></td>
<td><p>-></p></td>
<td><input id="ctyri" class="edit" name="hodnota" type="number" disabled="true" value={{$tet->agility}}></td>
</tr>
<button onclick="uloz()">SAVE ALL</button>
{{Form::hidden('_method','PUT')}}
{{Form::close()}}

В функции 'uloz ()' я включаю всеКоличество входов и отправить форму.Это мой CharacterContrller:

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

}

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Хорошо, я понял, будьте осторожны с вашей HTML-структурой, моя форма была внутри <table>, но она должна быть снаружи.Вот и все, токен CSRF не нужен.

0 голосов
/ 23 ноября 2018

Вы должны попробовать это:

Ваш файл просмотра вот так :

{!! Form::model($tet, ['route' => ['characters.update', $tet->id], 'class' => 'form-horizontal', 'role' => 'form', 'method' => 'post']) !!}

Ваш маршрут такой: :

Route::post('characters/update/{id}', 'CharactersController@update')->name('characters.update');

Обновленный ответ

Пожалуйста, добавьте CSRF токен в вашей форме, например:

<meta name="csrf-token" content="{{ csrf_token() }}">

Добавьте токен csrf в ajax :

$.ajaxSetup({
  headers: {
    'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
  }
});
...