laravel guzzle读取数据库而不是json

时间:2018-10-02 10:06:44

标签: json api guzzle6 laravel-5.7

我在localhost上有2个laravel项目(正在开发中):

第一个(project1.test)在检查数据库行之后返回api json:

public function postverify(Request $request)
{

    // return response()->json(['errors' => false, 'message' => 'site is work'], 200);



    $site = Site::whereId($request->site_id)->first();

    if (count($site) > 0) {
        if ($site->status == 1) {
            $errors = false;
            $message = 'site is work';
        } else {
            $errors = true;
            $message = 'site is off';
        }
    } else {
        $errors = true;
        $message = 'site not found';
    }

    return response()->json(['errors' => $errors, 'message' => $message], 200);

}

另一个调用上面函数的项目(project2.test),我安装了guzzle

我创建新路线:

Route::get('/check', function () {
    $client = new Client([
        'base_uri' => 'http://project1.test/api/'
    ]);

    $res = $client->request('POST','verify',[
        'http_errors'=>true,
        'headers' => [
            'Accept' => 'application/json'
        ],
        'form_params' => [
            'site_id' => 1
        ]
    ]);


   dd($res->getBody()->getContents());
});

在上述代码中,我在project2.test中遇到以下消息:

Server error: `POST http://project1.test/api/verify` resulted in a `500 Internal Server Error` response: { "message": "SQLSTATE[42S02]: Base table or view not found: 1146 Table 'laravel_project2.sites' doesn't exist (SQL: (truncated...)

但是在校验功能中,如果我取消注释第一行并注释查询,就可以了。

注意:我在邮递员中进行了测试,效果很好。

我该如何解决这个问题?

关于, 萨米人

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,我只是意识到这只是一个缓存错误。如果有人遇到相同的问题,我将分享解决我的问题的方法。只需在终端中键入以下命令即可清除缓存,它应该可以工作:

php artisan config:clear
php artisan config:cache
php artisan cache:clear
php artisan optimize

答案 1 :(得分:0)

为数据库连接更改laravel应用程序.env变量名称之一,如下所示

DB_HOST_1=127.0.0.1
DB_PORT_1=3306
DB_DATABASE_1=db_name
DB_USERNAME_1=root
DB_PASSWORD_1=