繁体   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