我目前正在使用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;
}
}
如果你们需要更多代码,请大声喊叫,但我认为这些是两个关键文件。
提前致谢
答案 0 :(得分:1)
我已经整理了你的显示功能。它将以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);
}
我没有测试过它,但它应该是你需要的。