簡體   English   中英

如何在Php Curl GET請求-Laravel中傳遞數組?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM