簡體   English   中英

Laravel 5.4雄辯而卷曲

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM