入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

Yii2下拉框实现

创建时间:2017-08-25 投稿人: 浏览次数:406

详细介绍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 yiihelpersHtml;

<?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 yiihelpersHtml;
use yiiwidgetsActiveForm;
use yiihelpersArrayHelper;

<?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创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。