$dataProvider 对象里面放着数组信息,怎么把信息以数组的形式提取保存 [ 新手入门 ]
public function actionIndex()
{
$dataProvider=Export::model()->findAllBySql("select id,BaiduLat,BaiduLon from tablename where id < 3");
$this->render('index',array(
'dataProvider'=>$dataProvider,
));
}
这是控制器中的方法,现在想在 index.php 把 $dataProvider
的数据给读取出来,放在数组里。 print_r($dataProvider);
输出得到以下,那么如何把 BaiduLat 和 BaiduLon 的信息给取出来,放在一个数组中,便于后续地图标注使用。谢谢
Array ( [0] => Export Object ( [_new:CActiveRecord:private] => [_attributes:CActiveRecord:private] => Array ( [id] => 1 [BaiduLat] => 31.262788 [BaiduLon] => 121.630306 ) [_related:CActiveRecord:private] => Array ( ) [_c:CActiveRecord:private] => [_pk:CActiveRecord:private] => 1 [_alias:CActiveRecord:private] => t [_errors:CModel:private] => Array ( ) [_validators:CModel:private] => [_scenario:CModel:private] => update [_e:CComponent:private] => [_m:CComponent:private] => ) [1] => Export Object ( [_new:CActiveRecord:private] => [_attributes:CActiveRecord:private] => Array ( [id] => 2 [BaiduLat] => 31.263184 [BaiduLon] => 121.630395 ) [_related:CActiveRecord:private] => Array ( ) [_c:CActiveRecord:private] => [_pk:CActiveRecord:private] => 2 [_alias:CActiveRecord:private] => t [_errors:CModel:private] => Array ( ) [_validators:CModel:private] => [_scenario:CModel:private] => update [_e:CComponent:private] => [_m:CComponent:private] => ) )
共 4 条回复
-
-
$datas = ArrayHelper::map($dataProvider, 'id', function ($dataProvider) { return [ 'BaiduLat' => $dataProvider->BaiduLat, 'BaiduLon' => $dataProvider->BaiduLon, ]; }, 'id');
打印出的结果如下
[ '1'=>[ 'BaiduLat' => 31.262788, 'BaiduLon' => 121.630306, ], '2'=>[ 'BaiduLat' => ..., 'BaiduLon' => ..., ], ]
这样是不是方便使用了。
手打的代码,如果有误,可以联系我。十五 觉得很赞 -
-
效果早已出来,忘记结题了,分享下。
$dataList =array(); foreach ($dataProvider as $key => $value) { $data['BaiduLat']=$value->BaiduLat; $data['BaiduLon']=$value->BaiduLon; $dataList[$key]=$data; } echo json_encode($dataList);
最后的语句是传数据给前台,对应我的另一个帖子 ajax 传数据。希望对大家有帮助。
fang
注册时间:2016-01-15
最后登录:2016-10-20
在线时长:5小时0分
最后登录:2016-10-20
在线时长:5小时0分
- 粉丝0
- 金钱290
- 威望0
- 积分340