Yii2 DropDownList用法

这里以实际应用为例讲解Yii2 DropDownList用法。

有一张分类表,无限极分类那种,表结构如下,pid就是父分类ID


 

这里我们要实现:

新建分类的时候,父分类可以从所有分类中任选一个或者不选

编辑分类时,父分类不能选择当前编辑的分类。。。如果选自己,父分类就是自己了,必然出错!

实现代码如下,我就贴上form的全部代码吧


  
  
  1. <?php
  2.  
  3. use common\models\Category;
  4. use yii\helpers\ArrayHelper;
  5. use yii\helpers\Html;
  6. use yii\widgets\ActiveForm;
  7.  
  8. /* @var $this yii\web\View */
  9. /* @var $model common\models\Category */
  10. /* @var $form yii\widgets\ActiveForm */
  11. ?>
  12.  
  13. <div class="category-form">
  14. <div class="row">
  15. <?php
  16. if (!$model->isNewRecord) {//如果是编辑分类
  17. $cate = ArrayHelper::map(Category::find()->andWhere('id != :id', [':id' => $model->id])->all(), 'id', 'title');
  18. } else {//如果是新建分类
  19. $cate = ArrayHelper::map(Category::find()->all(), 'id', 'title');
  20. }
  21. ?>
  22. <div class="col-md-6 col-md-offset-3">
  23. <?php $form = ActiveForm::begin(); ?>
  24.  
  25. <?= $form->field($model, 'title')->textInput(['maxlength' => 100])->label("分类标题") ?>
  26.  
  27. <?= $form->field($model, 'name')->textInput(['maxlength' => 100])->label("分类别名") ?>
  28.  
  29. <?= $form->field($model, 'pid')->dropDownList($cate, ['prompt' => '请选择父分类'])->label("父分类") ?>
  30.  
  31. <?= $form->field($model, 'keywords')->textarea(['maxlength' => 255])->label("分类关键词") ?>
  32.  
  33. <?= $form->field($model, 'description')->textarea(['maxlength' => 255])->label("分类描述") ?>
  34.  
  35. <div class="form-group">
  36. <div class="row">
  37. <div class="col-md-6 col-md-offset-3">
  38. <?= Html::submitButton($model->isNewRecord ? '创建' : '更新', ['class' => $model->isNewRecord ? 'btn btn-block btn-success' : 'btn btn-block btn-primary']) ?>
  39. </div>
  40. </div>
  41. </div>
  42.  
  43. <?php ActiveForm::end(); ?>
  44.  
  45. </div>
  46. </div>
  47.  
  48. </div>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值