本文實(shí)例講述了Yii2中DropDownList簡(jiǎn)單用法。分享給大家供大家參考,具體如下:
這里以實(shí)際應(yīng)用為例講解Yii2 DropDownList用法。
有一張分類表,無(wú)限極分類那種,表結(jié)構(gòu)如下,pid就是父分類ID
這里我們要實(shí)現(xiàn):
新建分類的時(shí)候,父分類可以從所有分類中任選一個(gè)或者不選
編輯分類時(shí),父分類不能選擇當(dāng)前編輯的分類。。。如果選自己,父分類就是自己了,必然出錯(cuò)!
實(shí)現(xiàn)代碼如下,我就貼上form的全部代碼吧
<?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("分類標(biāo)題") ?>
<?= $form->field($model, 'name')->textInput(['maxlength' => 100])->label("分類別名") ?>
<?= $form->field($model, 'pid')->dropDownList($cate, ['prompt' => '請(qǐng)選擇父分類'])->label("父分類") ?>
<?= $form->field($model, 'keywords')->textarea(['maxlength' => 255])->label("分類關(guān)鍵詞") ?>
<?= $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 ? '創(chuàng)建' : '更新', ['class' => $model->isNewRecord ? 'btn btn-block btn-success' : 'btn btn-block btn-primary']) ?>
</div>
</div>
</div>
<?php ActiveForm::end(); ?>
</div>
</div>
</div>
希望本文所述對(duì)大家基于Yii框架的PHP程序設(shè)計(jì)有所幫助。