Маршруты API не найдены

Я создаю простой CRUD для своего теста на стажировке в качестве бэкэнда. тест только про API. однако я столкнулся с проблемами при использовании laravel 11. Я не могу получить доступ к маршруту в api.php в почтальоне, он говорит, что 404 не найден.

<?php

use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\AuthController;
use App\Http\Controllers\DivisionController;
use App\Http\Controllers\EmployeeController;

Route::post('/login', [AuthController::class, 'login']);
Route::get('/divisions', [DivisionController::class, 'index']);
Route::get('/employee', [EmployeeController::class, 'index']);
Route::post('/employee', [EmployeeController::class, 'store']);
Route::put('/employee/{id}', [EmployeeController::class,'update']);

я уже пытался добавить конфигурацию в app.php в папке начальной загрузки и RouteServiceProvider, но ничего из этого не помогло.

<?php

use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;


return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(
        web: __DIR__.'/../routes/web.php',
        commands: __DIR__.'/../routes/console.php',
        health: '/up',
    )
    ->withMiddleware(function (Middleware $middleware) {

        $middleware->group('api', [
            \Illuminate\Routing\Middleware\ThrottleRequests::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ]);

        $middleware->validateCsrfTokens(except: [
            'api/*', //Menonaktifkan CSRF untuk semua rute API
        ]);
    })
    ->withExceptions(function (Exceptions $exceptions) {
        //
    })->create();

Я так ничего не знаю об этой проблеме, и я уже попробовал кучу решений, но ничего не помогло. кто-нибудь имел представление о том, что произошло?

какой маршрут ты пробовал в своем почтальоне? это localhost/api/route-here?

Mr. Kenneth 13.08.2024 02:09

@Mr.Kenneth, да, я использовал это localhost:8000/api/employee

zyoohwan14 13.08.2024 04:37
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Я думаю, вы можете попробовать добавить параметры api к вызову withRouting(). как объяснено в документации Laravel.

Или, возможно, попробуйте настроить маршрутизацию самостоятельно, используя что-то вроде следующего фрагмента из раздела Настройка маршрутизации.

use Illuminate\Support\Facades\Route;
 
->withRouting(
    commands: __DIR__.'/../routes/console.php',
    using: function () {
        Route::middleware('api')
            ->prefix('api')
            ->group(base_path('routes/api.php'));
 
        Route::middleware('web')
            ->group(base_path('routes/web.php'));
    },
)

есть еще один путь, потому что обновление не найдено Route::put('/employee/{id}', [EmployeeController::class,'update']); как вы думаете, что произошло?

zyoohwan14 13.08.2024 04:44

@zyoohwan14 Я думаю, это может быть связано с тем, что PHP и, следовательно, Laravel на самом деле не поддерживают метод PUT, однако Laravel предлагает подмену метода . Простой POST запрос с параметром _method, установленным в PUT. Если это не помогло, попробуйте очистить кэш маршрутов .

Jarryd 13.08.2024 04:59

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