YII2 GridView联表:文本框搜索、下拉框选择搜索和排序
2016-11-02 14:53
567 查看
用户资金记录表和用户表,两张表通过userId关联需求:需要在资金记录表中添加两列,username用户名和realname真实姓名,并实现自动搜索直接干货第一步:找到用户资金记录表对应的AR模型类 ,common\models\BorrowAccountLog,在该文件中进行关联User表
public function getUser(){ return $this->hasOne(User::className(),['userId'=>'userId']); }自己百度下hasOne第二步:在BorrowAccountLogSearch中加入
public $username; public $realname;
rules()方法中加入下面规则:
[['username','realname'],'safe'],//一定要加,不然搜索框出不来
search()方法中加入:
$query->joinWith(['user']);$query->select("hs_borrow_account_log.*, hs_user.username, hs_user.realname");
$dataProvider->setSort([ //添加-----排序'attributes' => [//其他字段不动'username' => ['asc' => [User::tableName().'.username' => SORT_ASC],'desc' => [User::tableName().'.username' => SORT_DESC],'label' => '用户名'],'realname' => ['asc' => [User::tableName().'.realname' => SORT_ASC],'desc' => [User::tableName().'.realname' => SORT_DESC],'label' => '真实姓名']]]);
$query->andFilterWhere(['like', 'hs_user.username', $this->username]);$query->andFilterWhere(['like', 'hs_user.realname', $this->realname]);
第三步:修改view文件
['label'=>'用户名', 'attribute' => 'username', 'value' =>'user.username' ],['label'=>'真实姓名', 'attribute' => 'realname', 'value' =>'user.realname' ],
如果你忽然不想要搜索框了,你可以这样写:
'user.username'
'user.realname'
还有一种情况:我们需要对联表字段进行下拉框搜索,比如对状态进行搜索,我们可以这么干
['label'=>'用户类型', 'attribute' => 'type', 'value' => function ($model) {return $model->user->type == 1 ? '投资人' : '借款人';},'filter' => [0=>'借款人',1=>'投资人'],//重点在这里,传入一个数组,会下拉框显示
'headerOptions' => ['width' => '7%']],
相关文章推荐
- [联表] -- YII2 GridView联表:文本框搜索、下拉框选择搜索和排序
- YII2 GridView联表搜索,排序
- YII2 GridView联表搜索,排序
- GridView联表搜索,排序
- Yii2-GridView 中让关联字段带搜索和排序功能
- Yii2-GridView 中让关联字段带搜索和排序功能示例
- Yii2-GridView 自定义关联字段带搜索和排序功能
- Yii2-GridView 中让关联字段带搜索和排序功能
- 浅析Yii2 GridView实现下拉搜索教程
- Yii 在GridView中使用关联模型进行搜索和排序
- yii2 GridView 下拉搜索实现案例教程
- 重写的GridView,支持CheckBox选择,DataTable和List排序,SQL分页等,付源码
- yii2 GridView 日期格式化并实现日期可搜索 案例
- 重写的GridView,支持CheckBox选择,DataTable和List排序,SQL分页等
- 富数据控件 GridView(行选择、排序、分页)
- Wijmo 更优美的jQuery UI部件集:在对Wijmo GridView进行排序或者过滤时保留选择
- YII2 列表( 不用自带的gridview) 分页+搜索
- Wijmo 更优美的jQuery UI部件集:在对Wijmo GridView进行排序或者过滤时保留选择
- 重写GridView,支持CheckBox选择,List排序等等...
- MVC无刷新分页(即局部刷新,带搜索,页数选择,排序功能)