我有一个奇怪的问题。我在同一台服务器(本地服务器)上有两个laravel项目,我想从一个项目中检索数据到另一个项目。每个项目都有自己的数据库和凭据。现在关于问题:当我使用GET/POST
发送curl()
请求时,另一个项目(目标项目)使用我发送请求的项目的凭据。因此,由于凭据和表名称不匹配,select语句不起作用。当我转储uri并将其粘贴到Web浏览器中时,它按预期工作。现在问:为什么第二个项目使用我发送请求的项目的数据库凭证(或者也可能是其他配置)?什么是共享会话或类似的内容?
答案 0 :(得分:0)
我在解决您的问题时遇到了一些麻烦,但我假设您正在使用来自一个项目的凭据,并以某种方式在您的其他具有不同凭据的项目中获得回报。最重要的是,您还有不同的数据库。怎么会这样?好吧,简而言之,它不应该。可以吗?是的,但你必须故意这样做。没有共享会话。所以我会在两个项目中检查你的数据库连接,看看是否有一些重叠。如果有,请检查那些,因为您的问题可能在那里。如果不是这种情况,请检查您的curl请求,看看您是否传递了正确的项目凭据,从而获得了正确的结果。除此之外,我需要更多信息来帮助你。
谢谢!
哦,你在使用Laravel Passport吗?如果没有,你在做什么/做什么?
答案 1 :(得分:0)
您解决了这个问题吗? 我遇到了同样的情况,并找到了解决方案。 解决方案是如下更改一个项目的.env文件。
change .env as follows.
DB_X_HOST="localhost"
DB_X_DATABASE="other_project"
DB_X_USERNAME="homestead"
DB_X_PASSWORD="secret"
DB_X_PORT="3306"
change config\database.php as follows.
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_X_HOST', '127.0.0.1'),
'port' => env('DB_X_PORT', '3306'),
'database' => env('DB_X_DATABASE', 'forge'),
'username' => env('DB_X_USERNAME', 'forge'),
'password' => env('DB_X_PASSWORD', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
]
对我来说很好。