[英]How To Pass Array in Php Curl GET request -Laravel?
我想将一个 courseIds 数组作为端点的输入,如"courseId":[14,15]
。所以,我在$Params
添加了一个额外的[]
。我在下面的代码中尝试过。 它从端点返回null
。 我认为我的 curl 网址不正确。 我怎样才能解决这个问题? 任何帮助深表感谢。
curl Url 看起来像这样 - http://127.0.0.1:8000/api/tutorByCourse?courseId%5B0%5D=14%2C15
$Params = ['courseId' => [$myCourse]];
dd($Params);
$curlConfig = array(
CURLOPT_URL => $url . "/api/tutorByCourse" ."?".http_build_query($Params),
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_RETURNTRANSFER => true,
);
卷曲端点
public function getTutorByCourseId(Request $request)
{
$validator = Validator::make(
$request->all(),
[
'courseId' => 'required|array',
]
);
}
dd($myCourse)
显示"14,15"
。
dd($Params)
显示
array:1 [
"courseId" => array:1 [
0 => "14,15"
]
]
我也试过如下:
$Params=explode(',',$myCourse);
$delimeter = '?';
foreach ($Params as $v) {
$queryParams .= "$delimeter"."courseId=$v";
$delimeter = '&';
}
CURLOPT_URL => $url . "/api/tutorByCourse" .$queryParams,
然后,网址看起来像这样 - http://127.0.0.1:8000/api/tutorByCourse?courseId=14&courseId=15
这也从端点返回null
我想你已经有了答案,请看:
$Params = ['courseId' => [$myCourse]];
dd($myCourse) 显示“14,15”。
我认为您没有正确保存您的 courseId,因为 $myCourse 似乎是“14,15”的文字字符串,而不是数组 [14, 15]。 http_build_query 可以处理数组(不需要先转换成字符串)。
请执行下列操作:
$myCourse = [14, 15]; // Or however this array is populated with IDs, this is just an example.
$parameters = ['courseId' => $myCourse];
然后使用新的 $parameters 构建查询。
附加说明:您的端点将继续返回“null”,直到 getTutorByCourseId() 返回响应。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.