打开 laravel 8 项目时出现错误
protected function switchToDatabase($database)
{
DB::purge();
$default = config('database.default');
config()->set(
"database.connections.{$default}.database",
$database,
);
}
Run Code Online (Sandbox Code Playgroud)
供应商/laravel/framework/src/Illuminate/Testing/Concerns/TestDatabases.php 中的“语法错误,意外的‘)’”
Gert B. answer 确实解决了这个问题,但你应该像 Mohammad 提到的那样将 PHP 更新到 7.3 或更高版本来解决这个问题。更改平台/供应商代码不是最佳选择。
删除 set 函数调用中的尾随“,”:
config()->set(
"database.connections.{$default}.database",
$database
);
Run Code Online (Sandbox Code Playgroud)
您使用的 PHP 版本低于 7.3
在: vendor/laravel/framework/src/Illuminate/Testing/Concerns/TestDatabases.php
改变:
if ($url) {
config()->set(
"database.connections.{$default}.url",
preg_replace('/^(.*)(\/[\w-]*)(\??.*)$/', "$1/{$database}$3", $url),
);
} else {
config()->set(
"database.connections.{$default}.database",
$database,
);
}
Run Code Online (Sandbox Code Playgroud)
到:
if ($url) {
config()->set(
"database.connections.{$default}.url",
preg_replace('/^(.*)(\/[\w-]*)(\??.*)$/', "$1/{$database}$3", $url)
);
} else {
config()->set(
"database.connections.{$default}.database",
$database
);
}
Run Code Online (Sandbox Code Playgroud)
删除行尾的逗号可解决此问题。
| 归档时间: |
|
| 查看次数: |
8959 次 |
| 最近记录: |