我有以下代码对 URL 进行 API 调用。响应是有json格式的。当收到响应数据时,我想使用另一个函数进一步处理数据,而不是在控制台中显示数据(我想仅显示最终处理的输出)。但目前,API 调用的响应与最终处理的输出一起显示在控制台中。
处理后的最终数据将保存在$processedData变量中。
<?php
function getDataFromApi(){
$url = 'https://www.myurl.com/data.json';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
function processData($data){
/**
* Do the processing and save processed data in $processedData variable.
*/
// Finally display the data
echo $processedData;
}
$result = getDataFromApi();
processData($result);
Run Code Online (Sandbox Code Playgroud)
如何不显示中间 cURL 响应而仅显示最终响应?
我的应用中有User、Review和Product Models 。
关系是:
- 用户的hasMany评论
- 评论属于用户
- 产品的hasMany评论
- 评论属于产品
我的表结构是
产品表
Run Code Online (Sandbox Code Playgroud)id | name | price评论表
Run Code Online (Sandbox Code Playgroud)id | review | rating | user_id | product_id用户表
Run Code Online (Sandbox Code Playgroud)id | name | email | password
当访问特定产品页面时,我想显示该产品的所有评论以及撰写这些评论的用户。所以我试过:
$product = Product::where('id','=',$id)->with('reviews')->with('users')->get();
Run Code Online (Sandbox Code Playgroud)
当然那没有用,因为Product与Users.
然后我尝试了Has Many Through关系。在产品型号中:
public function users()
{
return $this->hasManyThrough('App\User', 'App\Review');
}
Run Code Online (Sandbox Code Playgroud)
这需要表中的一product_id列Reviews。
它还期望表中有一review_id列Users不存在(并且将其放在那里是没有意义的,因为用户可以有很多评论)。
如何获得特定产品的所有评论以及撰写这些评论的用户?