我在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...)
但是在校验功能中,如果我取消注释第一行并注释查询,就可以了。
注意:我在邮递员中进行了测试,效果很好。
我该如何解决这个问题?
关于, 萨米人
答案 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=