1 第一种方法:ActiveForm 类的 dropDownList 方法(优点,默认使用yii的样式) 2 3 1、在控制器的方法里面 ,我们需要拿到数据,一定是 findAll() 或者是 all() 方法的数据,实例如下: 4 public function actionIndex() 5 { 6 $model = new UserModel(); 7 $data = Customer::find()->all(); 8 //类似这样 :data = [[‘id‘=>1,‘customer_name‘=>‘角色‘],[‘id‘=>2,‘customer_name‘=>‘权限‘]]; 9 return $this->render(‘index‘, [ 10 ‘model‘ => $model, 11 ‘data‘ => $data, 12 ]); 13 } 14 15 2、在视图页面,我们使用 yii 的表单生成器。 16 <?phpuse yii\helpers\Html; 17 use yii\widgets\ActiveForm;?> 18 <?php $form = ActiveForm::begin(); ?> 19 20 $form->field($model, ‘username‘)->dropDownList(yii\helpers\ArrayHelper::map($data,‘id‘, ‘customer_name‘),[‘prompt‘=>‘请选择‘,‘style‘=>‘width:100px‘,‘name‘=>‘user‘]); 21 22 2.1、dropDownList ---> yii2.0 下拉列表的方法 23 2.2、ArrayHelper::map() ---> 构建一个(key => value) 的一维或多维数组 24 2.3.1、 $data ---> 数据源 25 2.3.2、 id ---> option 的 value 值 26 2.3.3、 customer_name ---> option 标签的值 27 28 29 30 第二种方法:Html 类的 activeDropDownList方法(优点,可以自定义任何样式) 31 1、和第一种方法的第一步一样,拿到数据。不多解释了。 32 2、\yii\helpers\Html 类为我们提供了下拉列表的实现方法 activeDropDownList 方法 33 yii\helpers\Html::activeDropDownList($model, ‘username‘, yii\helpers\ArrayHelper::map($data,‘id‘, ‘customer_name‘), [‘style‘ => ‘border:1px solid red;‘]); 34 35 我没写 php 标签,大家自己复制代码,自己加上标签 36 参数和第一种方法的参数含义相同,不做解释。 37 38 39 第三种方法:Html 类的 dropDownList方法(优点,可以自定义任何样式) 40 1、和第一种方法的第一步一样,拿到数据。不过多解释了。 41 2、\yii\helpers\Html 类为我们提供了下拉列表的实现方法 dropDownList方法 42 <?=yii\helpers\Html::dropDownList(‘user‘, null, yii\helpers\ArrayHelper::map($data,‘admin_id‘, ‘admin_user‘), [‘class‘ => ‘sel‘,‘prompt‘=>‘请选择‘]);?>
如有哪里不对的地方,可以说说。互相交流,互相提升
时间: 2024-10-29 19:06:08