如何重新构建URL以确保发送参数

时间:2016-06-24 13:50:02

标签: php

我正在创建一个可以对maps.googleapis.com执行查询的函数。我使用库GuzzleHttp帮助。

我遇到的问题是当我创建一个函数并尝试通过在URL中添加参数来访问该功能时。看起来这个函数没有已知的参数(未分配)因此我所做的功能无法正常工作。

我的控制器

public function actionGetalldata() {
    $url = "https://maps.googleapis.com/maps/api/place/autocomplete/json?key=alskdsbeKASDJldkd&types=geocode&language=id&input=paci";

    $client = new GuzzleHttp\Client();

    $res = $client->request('GET', $url);

    $data = $res->getBody();

    $array = json_decode($data, true);

    foreach ($array['predictions'] as $key) {
        $detail = $this->getLatLong($key['place_id']);
    }
}

你看...当我尝试循环我的整个数据时,我会调用getLatLong函数但总是失败,因为该函数无法接受我提供的参数。

以下是功能

function getLatLong($placeid) {

    $url = "https://maps.googleapis.com/maps/api/place/details/json?placeid=".$placeid."&key=alskdsbeKASDJldkd";

    $client = new GuzzleHttp\Client();

    $res = $client->request('GET', $url);

    $data = $res->getBody();

    $array = json_decode($data, true);

    $resultx = $array['result'];

    $id       = $resultx['id'];
    $placeid  = $resultx['place_id'];
    $alamat   = $resultx['adr_address'];
    $lat      = $resultx['geometry']['location']['lat'];
    $long     = $resultx['geometry']['location']['lng'];

    $allData = [
        'id' => $id,
        'place_id' => $placeid,
        'address' => $alamat,
        'lat' => $lat,
        'long' => $long
    ];

    return $allData;
}

看起来$placeid变量是原因。

如果我直接放置静态placeid值,则此函数有效。

我该如何解决?请帮忙

谢谢

0 个答案:

没有答案