Yii2下拉框实现
详细介绍yii2下拉框的实现方法,以商品分类的下拉框为例:
第一种方法:使用Html的activeDropDownList(),该方法的优点是:可以自定义下拉框的样式。具体实现如下:
1.控制器中,获取视图中所需的数据
public function actionList(){
$category_model=new Category();
$category_info=$category_model->find()->all();
return $this->renderPartial('list',['category_info'=>$category_info,'category_model'=>$category_model]);
}
2.视图中,use yii\helpers\Html;
<?php $form = ActiveForm::begin([]);?>
<?php echo Html::activeDropDownList($category_model,'category_name',ArrayHelper::map($category_info,'category_id','category_name'),['style'=>'border:1px solid gray;width:150px;'])?>
<?php ActiveForm::end(); ?>
3.这样之后,表单的下拉框名称是:Category Name,如果要改变这个值,在控制器对应的模型中使用attributeLabels()方法,具体如下:
public function attributeLabels(){
return array(
'category_name'=>'分类',
);
}
第二种方法:使用ActiveForm的dropDownList(),优点是使用的yii自定义的样式,也可以自定义样式
1.控制器中获取视图中需要的数据
2.视图中,use yii\helpers\Html;
use yii\widgets\ActiveForm;
use yii\helpers\ArrayHelper;
<?php $form = ActiveForm::begin([]);?>
<?php echo $form->field($category_model,'category_name')->dropDownList(ArrayHelper::map($category_info,'category_id','category_name'),['style'=>'border:1px solid blue;width:150px;'])?>
<?php ActiveForm::end(); ?>
补充:该方法也可以自定义样式:具体如上代码
注意:如果要在下拉框的首项添加‘请选择’、‘全部’等默认的值。用prompt,代码如下:
<?php echo $form->field($brand_model,'brand_name')->dropDownList(ArrayHelper::map($brand_info,'brand_id','brand_name'),['prompt'=>'全部'])?>
各参数说明:
ArrayHelper::map()------------生成k=>v的一维或多维数组
$category_info----------------后台获取的数据
category_id-------------------option的value值
category_name---------------select 的name值
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 上周热点回顾(1.20-1.26)
· 【译】.NET 升级助手现在支持升级到集中式包管理