После переписывания некоторых моих маршрутов с помощью put, patch и delete моя функциональность больше не работает, и страница просто обновляется.Не получаю ошибок - PullRequest
0 голосов
/ 28 ноября 2018

Узнав, что я неправильно пишу свои маршруты, я решил их исправить.Маршруты изначально выглядели так:

Route::get('/deleteImage/{id}', 'ArtworkController@deleteImage')->name('deleteImage');
Route::get('/deleteCategory/{id}', 'CategoryController@deleteCategory')->name('deleteCategory');
Route::patch('/profile/{id}/update', 'UsersController@updateProfile')->name('updateProfile');

И я изменил их на:

Route::delete('/image/{id}', 'ArtworkController@deleteImage')->name('deleteImage');
Route::delete('/category/{id}', 'CategoryController@deleteCategory')->name('deleteCategory');
Route::patch('/profile/{id}', 'UsersController@updateProfile')->name('updateProfile');

К сожалению, как только я изменил Route::get('/deleteImage/{id}' на Route::delete('/image/{id}', что-то пошло не так.

Это тег <a>, который ведет к маршруту deleteImage:

<a class='placeholderDelete' href='{{ route('deleteImage', ['image_id' => $image->id]) }}'>Delete Image</a>

Перед внесением изменений изображение будет удалено после нажатия на этот элемент привязки, однако после изменения страницыпросто обновляется и ничего не происходит.Изображение не удаляется из моей базы данных и хранилища.

Я не уверен, как устранить неполадки, поскольку я не получаю никаких ошибок или чего-либо подобного.

1 Ответ

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

УДАЛИТЬ маршруты должны обрабатываться формой, которая использует POST.Обычные ссылки (якорные теги) посещают страницу с помощью запроса GET.Вам нужно будет использовать форму.Вот пример.

<form id="delete-form" class="form" role="form" method="POST" action="{{route('deleteImage', $image->id)}}">
    {{ csrf_field() }}
    <input name="_method" type="hidden" value="DELETE">
    <button type="submit">Delete</button>
</form>

Если вы хотите использовать обычную ссылку для удаления, вы можете скрыть форму и использовать javascript для ее отправки.

<a href="#" onclick="event.preventDefault(); document.getElementById('delete-form').submit();">Delete Image</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...