我似乎遇到了一个奇怪的问题。我正在使用 Http 外观从一个 laravel 应用程序触发到另一个 laravel 应用程序的发布请求。这两个应用程序都链接到单独的数据库。当我尝试使用邮递员触发相同的端点时,它工作正常,但是当从其他 laravel 应用程序触发请求时,收件人 laravel 应用程序尝试使用发件人应用程序的数据库设置,但该设置不起作用。我目前在 Windows 上使用 Xampp 来托管这两个应用程序,并且软件包是最新版本。有没有人遇到过类似的问题或者您能提出解决方案吗?
代码如下: 发送POST请求的服务(Sender App(1)):
Http::post("http://localhost/second_app/public/api/test", array(
'id' => 1,
);
Run Code Online (Sandbox Code Playgroud)
接收请求的代码(接收器应用程序(2)):
public function test(Request $request)
{
$club = Club::find($request->id);
}
Run Code Online (Sandbox Code Playgroud)
我在日志文件中收到一个错误,表明它正在尝试clubs在first_app数据库中查找表,而它应该使用second_app数据库。我尝试记录配置和请求。该请求非常大,无法在此处发布,但我验证已正确接收。该日志的代码是:
Log::info("Received Request", ['database' => ['driver' => config('database.default'), 'name' => config('database.connections.'.config('database.default').'.database')]]);
Run Code Online (Sandbox Code Playgroud)
如果请求是从 Postman 发送到 secondary_app 或从 secondary_app 发送到自身(使用 Http 门面)
[2021-08-17 03:13:56] local.INFO: Received Request {"database":{"driver":"mysql","name":"second_app"}}
Run Code Online (Sandbox Code Playgroud)
如果请求是使用 Http 外观从first_app发送second_app到
[2021-08-17 03:14:01] local.INFO: Received Request {"database":{"driver":"mysql","name":"first_app"}}
[2021-08-17 …Run Code Online (Sandbox Code Playgroud)