Laravel API 连接到客户端数据库

Laravel API Connecting to Client Database

我正在建设 2 个网站,其中一个托管在服务器上,另一个托管在本地主机上,它们都有自己的数据库。服务器上的那个有 API 路由从客户端获取数据并将其插入数据库。我要实现的功能是本地主机上的一个将从自己的数据库中检索数据,然后调用服务器上另一个的 API 路由,然后将其插入到服务器的数据库中。

预期结果: 来自本地数据库的数据通过 API.

插入到服务器的数据库中

实际结果: 服务器正在将数据插入回本地主机数据库。

问题: 有没有办法强制服务器将数据插入它自己的数据库?

代码: 本地主机函数

public function Sync (){
    $payload = t_worksheet::all()->toArray();
    $client = new Client();
    $res = $client->request('POST', 'http://localhost/cal-work/public/api/sync', ['form_params' => 
    ['payload' => $payload]]);
}

服务器功能

public function sync (Request $request) {
    $payload = $request->payload;
    foreach ($payload as $item) {
        $target = new t_worksheet_server;
        $target->name = $item['name'];
        $target->details = $item['details'];
        $target->approved_by = $item['approved_by'];
        $target->save();
    }

    return response()->json('success', 200);
}

服务器API路由

Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

Route::post('/sync', 'SyncController@sync');

本地.env

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=ws-local
DB_USERNAME=root
DB_PASSWORD=12345678

服务器.env

DB_CONNECTION=mysql
DB_HOST=db4free.net
DB_PORT=33060
DB_DATABASE=ws-server
DB_USERNAME=ckaryuusai
DB_PASSWORD=12345678

提前致谢

检查根 Laravel 项目文件夹中的 .env 文件,应该是 Server 这是您通常为数据库指定连接字符串的地方。

如果您的两个网站使用不同的数据库和不同的连接启动,它们必须使用各自不同的主机和凭据来连接到数据库。

对于服务器将数据推送到客户端的数据库,这听起来像是一个配置问题..

它成功了,我用 php artisan serve --port=8080 服务于服务器项目并将 guzzle 客户端更改为 localhost:8080,它运行良好