Я создаю простой 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();
Я так ничего не знаю об этой проблеме, и я уже попробовал кучу решений, но ничего не помогло. кто-нибудь имел представление о том, что произошло?
@Mr.Kenneth, да, я использовал это localhost:8000/api/employee
Я думаю, вы можете попробовать добавить параметры 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 Я думаю, это может быть связано с тем, что PHP и, следовательно, Laravel на самом деле не поддерживают метод PUT, однако Laravel предлагает подмену метода . Простой POST
запрос с параметром _method
, установленным в PUT
. Если это не помогло, попробуйте очистить кэш маршрутов .
какой маршрут ты пробовал в своем почтальоне? это
localhost/api/route-here
?