[英]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.