Я получаю ошибку 404 в почтальоне с методом post в laravel

Я использовал метод post в laravel, но все равно получаю ошибку 404.

Вот мой код:

Таскконтроллер.php

 public function changeStatus(Request $request, $id)
    {
        try {
            DB::beginTransaction();
            $task = Task::find($id);
            if (!$task) {
                return Helper::error(__('messages.task_not_found'), 404);
            }
            $input = $request->all();
            $validator = Validator::make($input, [
                'status' => 'required|boolean'
            ]);
            if ($validator->fails()) {
                return Helper::error($validator->errors()->first(), 422);
            }
            $task->status = $input['status'];
            $task->save();
            DB::commit();
            return Helper::success(__('messages.task_status_updated'), new someDetailResource($task), 200);
        } catch (\Throwable $th) {
            report($th);
            DB::rollBack();
            return Helper::error(__('messages.something_went_wrong'), 500);
        }
    }

API.php

Route::prefix('task')->controller(TaskController::class)->group(function () {
        Route::post('changeStatus/{id}', 'changeStatus');
});

В Почтальоне

http://127.0.0.1:8000/api/task/changeStatus/6

Я получаю ошибку 404 в Postman.

Кто-нибудь может мне с этим помочь? Спасибо за рассмотрение моего запроса.

Я прошел двойную проверку. Все правильно.

Попробуйте php artisan route:list, это должно вернуть ваш маршрут. В противном случае возникает проблема с определением маршрута.

Selvakumar Eswaran 12.06.2024 15:45

Действительно стоит проверить свой route:list. Но также, если нет задачи с идентификатором 6, вы вручную возвращаете код состояния 404..

geertjanknapen 12.06.2024 15:46

Будет ли это работать лучше при вызове маршрута в браузере (так что Postman не будет задействован)?

Nico Haase 12.06.2024 16:16
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
3
54
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Проблема может быть не в вашей маршрутизации, вы не нашли никакой задачи, поэтому служба возвращает 404, как указал @geertjanknapen:

public function changeStatus(Request $request, $id)
    {
        try {
            DB::beginTransaction();
            $task = Task::find($id);
            if (!$task) {
                //This is what you need to debug
                return Helper::error(__('messages.task_not_found'), 404);
            }
...
        
Ответ принят как подходящий

Сначала проверьте, зарегистрирован ли ваш маршрут или нет. Чтобы проверить, вы можете использовать следующую команду в терминале. Эта команда отобразит все зарегистрированные маршруты в вашем приложении Laravel. php artisan r:l

Если ваш маршрут не зарегистрирован, возможно, это связано с кэшированными данными. Чтобы очистить кеш, выполните следующую команду: php artisan optimize:clear .

Это очистит все кэшированные данные и обеспечит актуальность ваших маршрутов.

Проверьте эту ссылку, чтобы узнать об очистке кэша:

В моем случае это будет работать отлично.

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