0

我目前正在使用 Gmaps3 为 Joomla 2.5 制作一个谷歌地图组件,我在它用标记填充地图的地方,但我的 foreach 循环只返回一个对象。

下面的代码:

我的 View.json.php:

<?php
defined( '_JEXEC' ) or die;

jimport( 'joomla.application.component.view');

class LocateViewBranches extends JView
{
    public function display($tpl = null)
    {
        $branch = $this->get('Branches');

        foreach ($branch as $row) {
                $response = array(
                        'lat' => $row->branch_latitude,
                        'lng' => $row->branch_longitude,
                        'data' => array(),
                    );
                $response['data'][] = array(
                    'city' => $row->branch_city,
                );

        }
        echo json_encode($response);
    }
}

然后在我的模型中;

<?php
defined( '_JEXEC' ) or die;

jimport('joomla.application.component.model');

class LocateModelBranches extends JModel
{
    public function getBranches()
    {
        $db = $this->getDbo();
        $query = $db->getQuery(true);

        $query->select('*');
        $query->from('#__branches');
        $query->where("published = 1");

        $db->setQuery($query);

        $rows = $db->loadObjectList();

        return $rows;
    }
}

如果你们需要更多代码,请大喊,但我认为这是两个关键文件。

提前致谢

4

1 回答 1

0

我已经整理了你的显示功能。它将以 json 格式回显一个多维数组:

public function display($tpl = null)
{
    $responses = array(); // assign each row to this array

    $branch = $this->get('Branches');
    foreach ($branch as $row) 
    {
        // append row data to $responses array
        $responses[] = array(
            'lat' => $row->branch_latitude,
            'lng' => $row->branch_longitude,
            'data' => array(
                'city' => $row->branch_city
            ),
        );
    }
    echo json_encode($responses);
}

我还没有测试它,但它应该是你需要的。

于 2012-11-20T18:05:42.510 回答