白狼栈 2016-05-11 21:39:48 13013次浏览 3条评论 9 3 0

简单的小功能,但是用起来还是蛮爽的。分享出来让更多的人有更快的开发效率,开开心心快乐编程。
作者:白狼 出处:http://www.manks.top/yii2_dropdown_search.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

如果你还没有使用过composer,你可就out了,看我的教程分享,composer简直就是必备神奇有木有。都说到这个点上了,我们赶紧使用composer进行安装吧。

不急,先来看看效果图是啥样的,不然都没心情没欲望看下去。原文自带图片,可参考。

啥玩意,不感兴趣?继续看嘛,看完再操作一边才能觉得好在哪里。
有木有感觉很帅气,当然啦,远远不止,还很上档次用起来效果也是杠杠的有木有。
好了好了,抓紧时间安装,不然聊起来真是没完没了。

composer require kartik-v/yii2-widget-select2 "@dev"
#特别说明,因为这里安装的dev版本,也就是开发版本,不稳定版本,如果你的项目是git托管的,composer安装下来之后这里记得删掉 \vendor\kartik-v\yii2-widget-select2目录下的.git文件,不然你提交不上去的哦

等他个大概5分钟的样子差不多了,安装就好了,然后我们就可以像下面一样开始使用了
//如果你的表单是ActiveForm,请使用

use kartik\select2\Select2; 
//$data是键值对数组哦,key-value ,下面所声明的所有$data均为键值对数组,以该数组为例 
$data = [2 => 'widget', 3 => 'dropDownList', 4 => 'yii2']; 
echo $form->field($model, 'title')->widget(Select2::classname(), [  
    'data' => $data, 
    'options' => ['placeholder' => '请选择 ...'], 
]);

//如果你的表单是非ActiveForm,可以参考下面的

use kartik\select2\Select2; 
echo Select2::widget([ 'name' => 'title', 
    'data' => $data, 
    'options' => ['placeholder' => '请选择...'] 
]);

非ActiveFomr生成的更新数据的时候就需要默认选中,好办,加value值即可

use kartik\select2\Select2; 
echo Select2::widget([ 
    'name' => 'title', 
    'value' => 2, 
    'data' => $data, 
    'options' => ['placeholder' => '请选择...'] 
]);
#但是如果你的表单是ActiveForm生成的,但是往往字段不是表字段怎么办呢?更好办啦,以上面的为例,你只需要指定$model->title = ['title1', 'title2'];即可

继续阅读

觉得很赞
  • 评论于 2016-06-13 00:09 举报

    主要就是想问,不通过 composer 这个方式,直接下载 kartik 文件夹,行不行~
    国内 用 composer 好蛋疼

    1 条回复
    评论于 2016-06-13 08:58 回复

    行,但是不便于管理,不推荐!composer使用国内镜像会好很多

  • 评论于 2016-09-10 11:56 举报

    楼主非常棒。但是返现有一个问题是 在弹出modal 里面的下拉框不能进行输入 很郁闷 不知道怎么解决 !望楼主帮忙 感激不尽!

    1111.png

  • 评论于 2017-04-10 11:33 举报

    狼哥,我想要在下拉的数据当中增加两个层级的大标题 然后只让用户选择这最底层的数据 类似于分类的意思 有什么参数设置或者实现方法么

您需要登录后才可以评论。登录 | 立即注册