2017-01-23 138 views
1

我是Laravel的新用戶。嘗試使用外部API。如何將curl_exec結果保存到Laravel的變量中

控制器我不會只是爲了使可變用JSON:

$testapi = new TestApi(); 
$data['books'] = $testapi->books(); 
return view('books.index', $data); 

模型(只是PHP類沒有任何延伸)這樣:

public function books() 
{ 
    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, $this->host."/books"); 
    curl_setopt($curl, CURLOPT_HTTPHEADER, $this->headers); 
    $result = curl_exec($curl); 
    $result = json_decode($result); 
    curl_close($curl); 

    return $result; 
} 

但是JSON內容被放置在HTML文件的開始,甚至在META信息之前。 curl_exec不會將結果保存到變量,而是將其轉移到全局結果。如何將這個JSON保存到變量,然後使用裏面的模板?

+0

讓你的生活更輕鬆:學習古惑。 – ceejayoz

+0

這個問題只是因爲'curl_setopt($ curl,CURLOPT_RETURNTRANSFER,TRUE);' – EcStud

+0

是的。 Guzzle在cURL前面提供了一個更好的API,並在整個Laravel廣泛使用。你應該考慮學習它,因爲它會讓你的曲線更容易/更清晰。 – ceejayoz

回答

1

我相信你錯過了

curl_setopt($curl, CURLOPT_RETURNTRANSFER,TRUE); 

,將允許返回被投入到$結果變量,而不是直接輸出。

+0

是的!謝謝! – EcStud

+0

沒問題:)自己犯了這個錯誤幾次! – Kaylined

相關問題