У меня есть объявление о маршруте здесь
//Skill
Route::get('skill','SkillController@index');
Route::get('skill/create','SkillController@create');
Route::post('skill/store','SkillController@store');
Route::get('skill/{id}','SkillController@show');
Route::get('skill/{id}/edit', 'SkillController@edit');
Route::post('skill/{id}/update','SkillController@update');
Route::delete('skill/{id}/destroy','SkillController@destroy');
С этими маршрутами я могу удалить штраф на локальном.
Когда я пытался удалить на продакшене, я продолжал получать
Я точно знаю, у меня была эта строчка
Route::delete('skill/{id}/destroy','SkillController@destroy');
Что я пропустил?
Проверьте свои журналы доступа, чтобы узнать, какой тип запроса действительно попадает на сервер.
Я проверю свою форму как HTML-код. Хорошие подсказки: D!






Поскольку ваша проблема связана только с производством, которое является сервером Linux, я думаю, что это может быть проблема .htaccess.
Часто веб-серверы настраиваются на блокировку чего-либо, кроме GET и POST, поскольку в 99% случаев они все, что нужно, и в прошлом были проблемы с приложениями, предполагающими, что запросы были одним из этих двух.
Вы можете попробовать .htaccess с
<Limit GET POST PUT DELETE>
Allow from all
</Limit>
(Я не специалист по apache, возможно, это не совсем правильно)
Хорошо, позволь мне попробовать.
Ага. дайте мне знать, если проблема не исчезнет.
Маршрут запускается из формы ... Да? Ваш метод формы должен быть POST, а не DELETE, и затем вы должны добавить скрытый ввод, чтобы он работал как маршрут DELETE, тем самым помогая вам поддерживать Route::delete().
Ваша форма должна выглядеть так:
<form action = "/foo/bar" method = "POST">
<input type = "hidden" name = "_method" value = "DELETE">
И ваш маршрут:
Route::delete('skill/{id}/destroy','SkillController@destroy');
Прочтите https://laravel.com/docs/5.7/routing#form-method-spoofing для получения дополнительной информации.
У меня 5.1 - проверьте свой ответ.
Не проблема ... Спуфинг метода поддерживается в 5.1 ... Просто зайдите в laravel.com/docs/5.1/routing#form-method-spoofing
Когда вы записываете свой запрос в адресную строку браузера, он должен быть GET или POST. Вот почему вы ошиблись.
MethodNotAllowedHttpException: It means that the route is correct, but method is mistaken. You used POST method - this method is automatic if you use browser. But you need DELETE method.
Чтобы использовать метод DELETE, вы должны использовать клиент API.
PhpStorm имеет встроенный API-клиент API. Клиентская документация PHPStorm RESTApi
Но! Для меня лучший способ - использовать Почтальон! Почтальон отправляет запросы документы
Вы действительно отправляете HTTP-запрос DELETE? Как вы пришли к этому снимку экрана?