LaravelのTestDatabases.phpで「syntax error, unexpected ‘)’」が起きたときの対処方法

Laravelの初期設定時に、

初期ページを表示しようとすると

syntax error, unexpected ‘)’

のエラーが出て困ったので、

その時の対処方法をメモ。

同じようなエラーでうまく事象が解決できる人がいれば幸い。

LaravelのTestDatabases.phpで「syntax error, unexpected ‘)’」が起きたときの対処方法

Laravelのバージョン

$ php artisan --version
Laravel Framework 8.29.0

Laravelの設定の状況

このエラーが起きた時点では、

create-projectでLaravelのプロジェクトを作り、

envファイルの設定、key:generateまでやった状況。

また、特にwebサーバ等の設定は問題なく、

ページを表示しようとする段階で、

Laravel側でエラーが起きている状態。

エラー内容

エラーログとしては、以下のエラーログが残っていた。

local.ERROR: syntax error, unexpected ')' {"exception":"[object] (ParseError(code: 0): syntax error, unexpected ')' at 【laravelのフォルダ】/vendor/laravel/framework/src/Illuminate/Testing/Concerns/TestDatabases.php:164)

対応方法

まず、対象ファイルの「TestDatabases.php」の164行目あたりは、

    protected function switchToDatabase($database)
    {
        DB::purge();
        $default = config('database.default');
        $url = config("database.connections.{$default}.url");
        if ($url) {
            config()->set(
                "database.connections.{$default}.url",
                preg_replace('/^(.*)(\/[\w-]*)(\??.*)$/', "$1/{$database}$3", $url),
            );
        } else {
            config()->set(
                "database.connections.{$default}.database",
                $database,
            );
        }
    }

このようなコードになっている。

このコードでsyntaxエラーなので、

とりあえず、文法エラーで弾かれている箇所を調整。

            config()->set(
                "database.connections.{$default}.url",
                preg_replace('/^(.*)(\/[\w-]*)(\??.*)$/', "$1/{$database}$3", $url),
            );
 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
   setメソッドの末尾の「,」を削除
 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
            config()->set(
                "database.connections.{$default}.url",
                preg_replace('/^(.*)(\/[\w-]*)(\??.*)$/', "$1/{$database}$3", $url)
            );

同じ関数の中に2つ同じ箇所があるので、

どちらも同じように調整するとうまくいく。

スキルを使って、就職/転職/副業する時のサイト

プログラミングのスキルなどを、自分なりに高めた上で、

自分のスキルをアピールして就職や転職を行い、年収をあげるか、

副業という形で、年収にプラスアルファの稼ぎを増やすことはできます。

まずはできる範囲で取り組むことで、

少しずつ、経験値も増え、自分のスキルが収入につながるのでおすすめです。

おすすめ書籍

広告

おすすめ記事