在使用yii2构建搜索视图,经常都会使用到gridview这个组件,这个组件十分强大,通过一定的配置就能进行关联搜索,下面就是简单的步骤

  需求场景:一个车系表,里面存放在品牌表的id,现在要用品牌名字进行like搜索对应的车系

  1、用gii生成一个与Model对应的Search;

  2、在Search中,增加一个属性,名为$brand_name;

class SeriesSearch extends Series
{ public $brand_name; // 品牌名字,随便起名

  3、在Search中search中,添加这两句代码;

public function search($params)
{
$query = Series::find(); $query->joinWith(['brand']); // 连接品牌表,此处不用写全名 $dataProvider = new ActiveDataProvider([
'query' => $query,
'sort'=>[
'defaultOrder' => ['id'=>SORT_DESC]
]
]); if (!($this->load($params) && $this->validate())) {
return $dataProvider;
} $query->andFilterWhere([
'id' => $this->id,
'brand_id' => $this->brand_id,
'level_id' => $this->level_id,
'type_id' => $this->type_id,
'is_hot' => $this->is_hot,
'auto_series_id' => $this->auto_series_id,
'status' => $this->status,
'sort' => $this->sort,
'min_price' => $this->min_price,
'max_price' => $this->max_price,
'car_total' => $this->car_total,
'create_time' => $this->create_time,
'update_time' => $this->update_time,
]); $query->andFilterWhere(['like', 'name', $this->name])
->andFilterWhere(['like', 'letter', $this->letter])
->andFilterWhere(['like', 'comments', $this->comments])
->andFilterWhere(['like', 't_brand.name', $this->brand_name]); // 此处必须写表全名,而$this->brand_name指向的属性正是第二步中新增的属性 return $dataProvider;
}

  4、此时,再来看看视图文件;

[
'label' => '品牌',
'attribute' => 'brand_name', // 此处是第二步新增的属性名字
'value' => 'brand.name', // 不用写表全名
],

  5、到此,就大功告成了!

关于yii2的gridview关联搜索步骤的更多相关文章

  1. WPF Toolkit AutoCompleteBox 实体类绑定 关键字自定义关联搜索匹配

    原文:WPF Toolkit AutoCompleteBox 实体类绑定 关键字自定义关联搜索匹配 WPF Toolkit AutoCompleteBox 实体类绑定 关键字自定义关联搜索匹配 网上的 ...

  2. yii2 ActiveRecord多表关联以及多表关联搜索的实现

    作者:白狼 出处:http://www.manks.top/yii2_many_ar_relation_search.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明 ...

  3. yii2之GridView小部件

    GridView小部件用于展示多条数据的列表.GridView小部件的使用需要数据提供器即yii\data\ActiveDataProvider的实例作为参数,所以 第一步就是要在控制器方法中创建这个 ...

  4. Yii2的Gridview应用技巧补充

    Yii2框架下的Gridview通常用来展示一张DB表中的数据,十分方便.这里只说一下经常要用到的一些小技巧,其实大多数官方文档都是有的,只是有可能需要在多个文档里. 自动创建的gridview示例. ...

  5. Yii2框架GridView自带导出功能最佳实践

    1. 导出excel的实现方法 (1)使用phpexcel封装工具类导出excel (2)使用爬虫爬取页面再处理封装工具类导出excel (3)使用页面渲染后处理html添加头部信息生成excel文件 ...

  6. Yii2中GridView

    Yii2 GridView与dropdownList结合的用法 http://www.yiichina.com/tutorial/473 <?=$form->field($model, ' ...

  7. Yii2.0 GridView 新增添加按钮

    <?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'col ...

  8. yii2的GridView和ActiveDataProvider具体使用

    1.控制器中(以User模块的列表为例): 第一步: use backend\models\User;use yii\data\ActiveDataProvider; 第二步: public func ...

  9. DevExpress GridView 自定义搜索按钮改为中文内容

    首先将 GridControl 控件的搜索功能显示出来. http://www.cnblogs.com/DeepLearing/p/3887601.html 显示效果如下: 可以通过 GridLoca ...

随机推荐

  1. div滚动与控制

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head&g ...

  2. Android自定义UI的实现和应用

    在Android项目开发中,不可避免的要遇到自定义的UI,用较好的体验去讨好UED妹子和交互设计师手下留情~几个迭代下来,遇到了不少这样的要求,有简单有复杂.最好的实现方案就是讲业务和UI隔离,封装成 ...

  3. 普通用户登录Oracle DB Control

    使用 sys 或者 system 用户登录 Oracle DB Control 是没有问题的. 但是,如果是普通的用户需要登录Oracle DB Control,建表或者视图之类的, 则需要授权 SE ...

  4. CSS3中轻松实现渐变效果

    background: -moz-linear-gradient(top, #8fa1ff, #3757fa); /* Firefox */ background: -webkit-gradient( ...

  5. javascript实现当前页导航激活

    html <ul id=”nav”> <li><a href=”http://www.daqianduan.com/”>首页</a></li> ...

  6. jquery ajax后台向前台传list 前台用jquery $.each遍历list

    $.ajax({ type: 'post', url: xxx.action', dataType: 'text', success: function(data){ var dataObj=eval ...

  7. Springmvc加载静态文件和开启EL表达式的支持

    一.静态文件加载问题 刚开始学习SpringMVC,发现静态文件无法加载 web.xml配置如下: <web-app id="WebApp_ID" version=" ...

  8. Almost Prime

    Description Almost Prime time limit per test: 2 seconds memory limit per test: 256 megabytes input: ...

  9. 如何修改Struts2 FiledError样式

    有时候,使用Struts2的<s:fielderror />标签还是比较好的.但是这个标签本来的样式实在很难看,不但换行,而且有个大大的黑点.一看就知道用了<ui><li ...

  10. java--工具方法

    根据时间戳得到具体的时间: public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat(& ...