Почему запрос на удаление возвращает 404 в Laravel с использованием ajax

Это маршрут внутри моего файла web.php Пишет 404 Не найдено на маршруте http://127.0.0.1:8000/категории/удалить

Route::middleware(["auth"])->group(function () {
    Route::resources([
        'categories' => CategoryController::class,
        'posts' => PostsController::class,
    ]);
    
    // this is the route i am targeting
    Route::delete("/categories/delete", [CategoryController::class, "delete"])->name("categories.delete"); 
});

Это ajax-запрос к маршруту внутри моего файла index.blade.php.

<button id="deleteAll" class="border-0" type="button">
    <x-heroicon-o-trash class="w-6 h-6 text-red-600" />
</button>

<script>
    $(function(){
        $("#check-all").click(function(){
            $(".item-check").prop("checked", $(this).prop('checked'));
        });

        // This is the click event to delete a category
        $("#deleteAll").click(function(e){
            e.preventDefault();

            let allIds = [];
            $("input:checkbox[name=catId]:checked").each(function(){
                allIds.push($(this).val());
            });

            $.ajax({
                url: "{{ route('categories.delete') }}",
                type: "DELETE",
                data: {
                    _token: $("input[name=_token]").val(),
                    ids: allIds
                },
                success: function(response){
                    $.each(ids, function(key, val){
                        $("#row-"+val).remove(); 
                    })
                }
            });
        });
    });
</script>

Вот функция удаления в моем CategoryController

public function delete(Request $request)
{
   dd($request->all());
}

Да, он указан, когда я делаю php artisan route:list. Вот почему я не понимаю, где что-то не так

Samuel Web 10.04.2022 10:42
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Что нового в PHP 8.1?
Что нового в PHP 8.1?
Если вы все еще используете PHP 7, то эта статья для вас. В PHP 8, а именно в PHP 8.1, встроены некоторые очень востребованные функции, которые вам...
Разработка LMS на заказ для повышения эффективности работы и обучения
Разработка LMS на заказ для повышения эффективности работы и обучения
За последние годы в образовании произошла большая революция, и сегодня почти все учебные заведения делают упор на эксклюзивное управление учебным...
0
1
35
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Думаю, вы должны изменить порядок маршрутов:

ваш файл web.php может быть таким:

Route::middleware(["auth"])->group(function () {

    // this is the route i am targeting
    Route::delete("/categories/delete", [CategoryController::class, "delete"])->name("categories.delete"); 

    Route::resources([
        'categories' => CategoryController::class,
        'posts' => PostsController::class,
    ]);
    
});

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

Ого, теперь все заработало🤓☺️, большое спасибо, Хамид. Но не могли бы вы объяснить, почему мне пришлось заказать маршрут, чтобы заставить это работать.

Samuel Web 10.04.2022 11:30

Я добавил ссылку на ресурс laravel выше.

Hamid Moladoust 10.04.2022 11:47

Хорошо, спасибо, Хамид👍🏽, я очень ценю😌.

Samuel Web 10.04.2022 11:51

Другие вопросы по теме