0
点赞
收藏
分享

微信扫一扫

yii自带表单常用与ArrayHelper

诗远 2022-11-20 阅读 63


一 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'=>'-请选择状态-'])?>


举报

相关推荐

0 条评论