[英]Laravel 5.4 Eloquent and curl
雄辯的查詢是否可能受到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時, 雄辯的行為受到某種影響,我不明白為什么
(通過“用戶”表僅包含1個用戶的方式)
更新我發現了一些更奇怪的東西,當使用curl時,這部分$User=User::first()
實際上是從客戶端數據庫中獲取用戶的(我在同一台機器上具有客戶端應用程序和服務器應用程序,但URL不同),而不是來自該api使用的數據庫,盡管兩個應用程序在其相應的.env文件中均具有正確的數據庫。 我什至將名稱空間設置為api中的App / Api / User和客戶端中的App / User,以避免任何名稱空間沖突,但是問題仍然存在
我相信這是因為您沒有在curl請求中設置內容類型,請嘗試以下curl
$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);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Connection: Keep-Alive'
]);
$result['content'] = curl_exec($ch);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.