本文实例讲述了Yii2中DropDownList简单用法。分享给大家供大家参考,具体如下:
这里以实际应用为例讲解Yii2 DropDownList用法。
有一张分类表,无限极分类那种,表结构如下,pid就是父分类ID
这里我们要实现:
新建分类的时候,父分类可以从所有分类中任选一个或者不选
编辑分类时,父分类不能选择当前编辑的分类。。。如果选自己,父分类就是自己了,必然出错!
实现代码如下,我就贴上form的全部代码吧
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
<?php use common\models\Category; use yii\helpers\ArrayHelper; use yii\helpers\Html; use yii\widgets\ActiveForm; /* @var $this yii\web\View */ /* @var $model common\models\Category */ /* @var $form yii\widgets\ActiveForm */ ?> <div class = "category-form" > <div class = "row" > <?php if (! $model ->isNewRecord) { //如果是编辑分类 $cate = ArrayHelper::map(Category::find()->andWhere( 'id != :id' , [ ':id' => $model ->id])->all(), 'id' , 'title' ); } else { //如果是新建分类 $cate = ArrayHelper::map(Category::find()->all(), 'id' , 'title' ); } ?> <div class = "col-md-6 col-md-offset-3" > <?php $form = ActiveForm::begin(); ?> <?= $form ->field( $model , 'title' )->textInput([ 'maxlength' => 100])->label( "分类标题" ) ?> <?= $form ->field( $model , 'name' )->textInput([ 'maxlength' => 100])->label( "分类别名" ) ?> <?= $form ->field( $model , 'pid' )->dropDownList( $cate , [ 'prompt' => '请选择父分类' ])->label( "父分类" ) ?> <?= $form ->field( $model , 'keywords' )->textarea([ 'maxlength' => 255])->label( "分类关键词" ) ?> <?= $form ->field( $model , 'description' )->textarea([ 'maxlength' => 255])->label( "分类描述" ) ?> <div class = "form-group" > <div class = "row" > <div class = "col-md-6 col-md-offset-3" > <?= Html::submitButton( $model ->isNewRecord ? '创建' : '更新' , [ 'class' => $model ->isNewRecord ? 'btn btn-block btn-success' : 'btn btn-block btn-primary' ]) ?> </div> </div> </div> <?php ActiveForm:: end (); ?> </div> </div> </div> |
希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。