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つ同じ箇所があるので、
どちらも同じように調整するとうまくいく。
スキルを使って、就職/転職/副業する時のサイト
プログラミングのスキルなどを、自分なりに高めた上で、
自分のスキルをアピールして就職や転職を行い、年収をあげるか、
副業という形で、年収にプラスアルファの稼ぎを増やすことはできます。
まずはできる範囲で取り組むことで、
少しずつ、経験値も増え、自分のスキルが収入につながるのでおすすめです。