【Laravel エラー対処】Invalid route action: [$this->namespace

エラー対処 Invalid route action-アイキャッチ PHP

Laravelのコーディング中に発生したエラーの対処方法をご紹介します。

エラー発生内容

英語の意味を翻訳すると、
「無効なルートアクション」とのことです。


 
 

エラー解決方法

app\Providers\RouteServiceProvider.php
エラー要因のコード↓


    public function boot(): void
    {
        RateLimiter::for('api', function (Request $request) {
            return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
        });

        $this->routes(function () {
            Route::middleware('api')
                ->prefix('api')
                ->group(base_path('routes/api.php'));

            Route::prefix('admin')
                ->as('admin.')
                ->middleware('web')
                ->namespace('$this->namespace')
                ->group(base_path('routes/admin.php'));

            Route::prefix('owner')
                ->as('owner.')
                ->middleware('web')
                ->namespace('$this->namespace')
                ->group(base_path('routes/owner.php'));

            Route::prefix('/')
                ->as('user.')
                ->middleware('web')
                ->namespace('$this->namespace')
                ->group(base_path('routes/web.php'));
        });
    }

 

app\Providers\RouteServiceProvider.php
直したコード↓


    public function boot(): void
    {
        RateLimiter::for('api', function (Request $request) {
            return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
        });

        $this->routes(function () {
            Route::middleware('api')
                ->prefix('api')
                ->group(base_path('routes/api.php'));

            Route::prefix('admin')
                ->as('admin.')
                ->middleware('web')
                ->namespace($this->namespace)
                ->group(base_path('routes/admin.php'));

            Route::prefix('owner')
                ->as('owner.')
                ->middleware('web')
                ->namespace($this->namespace)
                ->group(base_path('routes/owner.php'));

            Route::prefix('/')
                ->as('user.')
                ->middleware('web')
                ->namespace($this->namespace)
                ->group(base_path('routes/web.php'));
        });
    }

 
$this->namespace を 「’」で囲んでしまってたので消去しました。こちらが正しいコードです。

 
動作環境
Laravel 10.9
PHP 8.2

この記事がお役に立ちますと幸いです。
 

「Laravelの教科書 バージョン10対応」

最新Laravel 10の機能やアップデート内容を網羅しながら、スキルアップを図る!
「オールカラー」解説で、初心者の方でも迷わずに学ぶことができます。
コードだけで無く「なぜそうなるか」を丁寧に説明してくれます。オススメの1冊です👌


広告
PHP
kirinote.com