Как исправить Slim 3 PUT, запрос DELETE не работает - PullRequest
1 голос
/ 13 января 2020

Я пытаюсь реализовать запрос DELETE и PUT, но у меня ошибка. ниже мой код

$app->group('/departments', function () {
   $this->put('/{id}', DepartmentController::class . ':update')->setName('department.update');
   $this->delete('/{id}', DepartmentController::class . ':destroy')->setName('department.destroy');
});

Когда я пытаюсь запустить код, я получаю это сообщение об ошибке

Method not allowed. Must be one of: PUT, DELETE

Я что-то здесь упустил? Спасибо

Ответы [ 2 ]

1 голос
/ 20 января 2020

Мне удалось решить мою проблему, добавив скрытый метод ввода следующим образом.

//Update
<form action="{{path_for('department.update', {'id':department.id})}}" method="post">
  <input type="hidden" name="_METHOD" value="PUT">
</form>

//Delete
<form action="{{path_for('department.destroy', {'id':department.id})}}" method="post">
  <input type="hidden" name="_METHOD" value="DELETE">
</form>

и мой route

$app->group('/departments', function () {
   $app->put('/{id}', DepartmentController::class . ':update')->setName('department.update');
   $app->delete('/{id}', DepartmentController::class . ':destroy')->setName('department.destroy');
});
0 голосов
/ 20 января 2020

Попробуй,

$app->group('/departments', function () {
   $app->put('/{id}', DepartmentController::class . ':update')->setName('department.update');
   $app->delete('/{id}', DepartmentController::class . ':destroy')->setName('department.destroy');
});
...