【发布时间】:2015-07-02 13:19:40
【问题描述】:
我有一个表格数据tb_Agroindustri 有很多坐标,我使用带有扩展名 yii2-google-maps-library 的 yii2 在谷歌地图上显示它。
这是我的代码:
foreach ($feederWilayah as $value) {
$idFeed = $value->id_wilayah;
$path = Agroindustri::find()
->where(['id_wilayah' => $idFeed])
->all();
foreach ($path as $value){
$koord = new LatLng([
'lat' => $value->lat,
'lng' => $value->lng
]);
$coords[] = $koord;
}
$polygon = new Polygon([
'paths' => $coords,
]);
// Add it now to the map
$map->addOverlay($polygon);
// end of show polygon
}
但我有一条错误消息:Allowed memory size of xxxxx bytes exhausted (tried to allocate xx bytes). 然后我尝试添加此代码ini_set("memory_limit","512M")。但我仍然收到错误。
我必须更改我的代码还是如何更改?有没有办法解决我的问题?如果有人可以提供教程或其他东西,那将是一个真正的帮助。我要疯了。
【问题讨论】:
-
看起来您正在循环中执行数据库查询,然后循环遍历该结果(仍处于循环中),这意味着您的流程将在操作数量方面呈指数增长- 您可以优化的任何方式,即获取所有
$idFeeds的数组,然后使用它来进行find()查询? -
@scrowler 我不知道,你能给我举个例子吗?
标签: php google-maps-api-3 yii2 yii2-advanced-app