【发布时间】:2017-04-04 16:12:20
【问题描述】:
Eloquent 查询是否会受到使用 curl 发出的请求的影响?
这就是我的意思,我有这个返回用户信息的控制器方法
class TestController extends Controller
{
public function test(Request $request)
{
$User= User::where('email','user@mail.com')->first();
return response($User);
}
因此,当我转到浏览器并请求该方法时,它会按预期返回用户信息。现在,当我使用 curl 发送请求时,它返回 NULL。
这是我的卷发:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
$result['content'] = curl_exec($ch);
如果我更改此查询,那么真正奇怪的部分来了:
$User= User::where('email','user@mail.com')->first();
到这里
$User= User::first();
然后再次使用 curl 发送请求,它可以工作。
使用 curl 时,Eloquent 行为似乎受到了影响,我不明白为什么
(顺便说一下 users 表只包含 1 个用户)
更新
在使用 curl 这部分时,我发现了一些更奇怪的东西
$User=User::first() 实际上是从客户端数据库获取用户(我在同一台机器上拥有客户端应用程序和服务器应用程序,但具有不同的 url),而不是从这个 api 正在使用的数据库获取用户,尽管两个应用程序在它们的数据库中都有正确的数据库对应的 .env 文件。我什至将命名空间设置为 API 中的 App/Api/User 和客户端中的 App/User 以避免任何命名空间冲突,但问题仍然存在
【问题讨论】: