本文实例讲述了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程序设计有所帮助。