一 ArrayHelper
1、从多维数组中取出值:getValue
$arr= [
'aa'=>[
'bb'=>new Test() //有个name属性
]
];
//php取Test中的name属性如下:
$name = isset($arr['aa']['bb']->name) ? $arr['aa']['bb']->name : null;
//ArrayHelper
$name = \yii\helpers\ArrayHelper::getValue($arr,'aa.bb.name');
2、将多维数组转化key->val形式数组,类似下拉列表数据:map
如:$arr = [['id'=>1,'name'=>'zz'],['id'=>2,'name'=>'cc'],..],转成一维数组,将id做为key如下:
\yii\helpers\ArrayHelper::map($arr,'id','name');
//[1=>'zz',2=>'cc',...]
3、取出多维数组或对象数组中某一列的值:
如:$arr = [
['id'=>1,'name'=>'zz'],['id'=>2,'name'=>'cc'],...
]
//取出name这一列
\yii\helpers\ArrayHelper::getColumn($arr,'name')
//['zz','cc',...]
4、多维数组排序:multisort
\yii\helpers\ArrayHelper::multisort($data,['age','name'],SORT_ASC,SORT_DESC)
5、重建数组索引:
\yii\helpers\ArrayHelper::index($data,'id')
6、对象转数组
\yii\helpers\ArrayHelper::toArray($obj,[..])
二 表单
1 下拉菜单
1.1 普通写死
$form->field($model,'status')->dropDownList([1=>'草稿',2=>'已发布'],['prompt'=>'-请选择状态-'])
1.2 从数据库取出
<?php
$test = common\models\Test::find()->all();
$allStatus = \yii\helpers\ArrayHelper::map($test,'id','status'); //map:转化成 [['id'=>'status,'id'=>'status'']]
?>
<?= $form->field($model,'status')->dropDownList($allStatus,['prompt'=>'-请选择状态-'])?>
yii自带表单常用与ArrayHelper
最新推荐文章于 2024-05-13 14:41:00 发布