如何将curl_exec结果保存到Laravel的变量中

问题描述:

我是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

我相信你错过了

curl_setopt($curl, CURLOPT_RETURNTRANSFER,TRUE); 

,将允许返回被投入到$结果变量,而不是直接输出。

+0

是的!谢谢! – EcStud

+0

没问题:)自己犯了这个错误几次! – Kaylined