如何防止未定义的属性:stdClass::$data 在命中 API 时



我使用Laravel创建了一个表单,我从用户那里获取数据,这些数据应该存储在API中。我编写了一个名为global_curl的单独函数,该函数应该将数据发布到 API。问题是当我尝试通过 post 请求访问 REST API 时,出现以下错误:(1/1( 错误异常 未定义的属性:标准类::$data

我的控制器

//Post Request of plan entries
public function validatePlanEntries(Request $request){
$data = array(
'DobPrincipalTraveller' => $request->dob,
'TravelStartDate' => $request->departure_date,
'TravelEndDate' => $request->return_date,
'CoverOption' => $request->cover,
'DobOfSpouse' => $request->spousedob,
'Children' => '2018-10-07',
'WithSpouse' => 0
);
// dd($data);
/*Posts data to Travel Plans API*/
$travelplan_data = $this->global_Curl($data, 'api/travel/get-plans')->data;
}

卷曲功能

public function global_Curl($data, $url){
//dd($_ENV['API_ENDPOINT_NGINX_IP'] . '/' . $url);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, ($_ENV['API_ENDPOINT_NGINX_IP'] . '/' . $url));
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch));
curl_close($ch);
return $response;
}

来自邮递员的 API 数据结构

{
"DobPrincipalTraveller":"1978-01-22",
"TravelStartDate":"2018-10-20",
"TravelEndDate":"2018-10-25",
"CoverOption":"Standard",
"WithSpouse":"1",
"DobOfSpouse":"1985-03-18",
"Children":[
{
"DateOfBirth":"2015-05-23"
},
{
"DateOfBirth":"2016-09-13"
}
]
}

应该是这样的。

$travelplan_data = $this->global_Curl($data, 'api/travel/get-plans');

它应该是这样的: 由于您将数组传递给函数,因此它应该能够接受数组作为参数,因此您应该像我一样定义 curl 函数。

//Post Request of plan entries
public function validatePlanEntries(Request $request){
$data = array(
'DobPrincipalTraveller' => $request->dob,
'TravelStartDate' => $request->departure_date,
'TravelEndDate' => $request->return_date,
'CoverOption' => $request->cover,
'DobOfSpouse' => $request->spousedob,
'Children' => '2018-10-07',
'WithSpouse' => 0
);
// dd($data);
/*Posts data to Travel Plans API*/
$travelplan_data = $this->global_Curl($data, 'api/travel/get-plans');
}
public function global_Curl(array $data, $url){
//dd($_ENV['API_ENDPOINT_NGINX_IP'] . '/' . $url);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, ($_ENV['API_ENDPOINT_NGINX_IP'] . '/' . $url));
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = json_decode(curl_exec($ch));
curl_close($ch);
return $response;
}

试试这个.. 希望它会起作用

最新更新