yii自带表单常用与ArrayHelper

一 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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值