Laravel 11にて api.phpが認識されない

この記事はLaravel Advent Calendar 2024の12日目です

こんにちは!とびろぐ管理人のとびうおです!

今回、Laravel 11にてapi.phpに書いたrouteが認識されない…という悲しい事態が発生したので解決策をお伝えいたします!

今回発生した問題

今回発生した問題は、手元でapi.phpに新しいrouteを追加をして、認識したのですが、ECSのタスクに挙げた際に認識してくれないという問題が発生しました。

手元で行っていたこと

php artisan install:api
とびうお
とびうお

上記の形でinstallしました

そして、

php artisan route:list

と打つと、無事api.phpに書いたrouteが認識されていました。

とびうお
とびうお

ここまでは順調でした

しかし…

しかし、aws ecs上で

php artisan route:list

を打つと、api.phpに書いたものが認識されていませんでした…

とびうお
とびうお

ここでかなり詰まってしまった…
キャッシュクリアとか色々してみましたが、認識できませんでした

解決策

今回、解決策としては、Laravelのbootstrap/app.phpに以下の記述を書くことで解決しました。

<?php

use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;
use App\Http\Middleware\HandleInertiaRequests;
use Illuminate\Support\Facades\Route;

return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(
        using: function () {
            Route::middleware('api')
                ->prefix('api')
                ->group(base_path('routes/api.php'));

            Route::middleware('web')
                ->group(base_path('routes/web.php'));
        },
        commands: __DIR__.'/../routes/console.php',
        health: '/up',
    )
    ->withMiddleware(function (Middleware $middleware) {
        $middleware->web(append: [
            HandleInertiaRequests::class,
        ]);
    })
    ->withExceptions(function (Exceptions $exceptions) {
        //
    })->create();
とびうお
とびうお

自分で定義する形にしました

Laravel - The PHP Framework For Web Artisans
Laravel is a PHP web application framework with expressive, elegant syntax. We’ve already laid the foundation — freeing you to create without sweating the small...
とびうお
とびうお

公式ドキュメントにもしっかり書いてありました…
が、なぜ手元で認識されたのが認識されてないのかは謎いです。

まとめ

まとめると、bootstrap/app.phpにカスタムで記述すると良いということです!

Laravel 11、10と違って色々変わってて…ちょっと大変ですね。

とびうお
とびうお

Laravel 11、使い慣れるまで時間かかりそう..

その他の記事

とびろぐではこれ以外にもLaravelの記事を多く書いています!

ぜひみてみてください!

Laravel
「Laravel」の記事一覧です。

とびうお
ブログ管理人です!
swimaneというアプリをリリースしました!

コメント

タイトルとURLをコピーしました