在使用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. 使用 hibernate 存取大对象数据类型(clob和blob)

    数据库表如下: book表 id 该表的主键.number类型. photo 代表图书的图片,blob类型. description 图书的描述,clob类型. 使用 hibernate3 往 boo ...

  2. ios9配置info.plist中关于安全访问问题

    打开info.plist文件 - >添加App Transport Security Settings 字典类型,在App Transport Security Settings下增加Allow ...

  3. 《高性能JavaScript》的新征程

    已经学了<JavaScript语言精粹>,现在学高性能. JS的出现是为了改善网页用户体验的,随着互联网通信速度的改善.计算机性能的提升,web越发丰富:但一段时间内,JS的引擎变化不大. ...

  4. python正则表达式练习篇2

    首先生成正则表达式练习的数据: #! /usr/bin/python from random import randint, choice from string import lowercase f ...

  5. map循环

    Map<String,  String> maps = new HashMap<String, String>(); maps.put("_id", &qu ...

  6. sql中Statement与PreparedStatement的区别

    1.Statement用于执行静态sql语句,在执行时,必须指定一个事先准备好的sql语句,也就是说sql语句是静态的. 2.PrepareStatement是预编译的sql语句对象,sql语句被预编 ...

  7. Android L 之 RecyclerView 、CardView 、Palette

    转: http://blog.csdn.net/xyz_lmn/article/details/38735117 <Material Design>提到,Android L版本中新增了Re ...

  8. Unknown system variable 'tx_read_only'

    SpringMVC+SpringDataJPA(1.4.2.RELEASE)+hibernate(4.2.7)+mysql6.0的开发环境,mysql-connector要older than5.1. ...

  9. In Depth : Android Boot Sequence / Process

    In Depth : Android Boot Sequence / Process What happened when I press power on button in my Android ...

  10. MYSQL 日志文件路径错误 1067错误

    场景再现: ---------------------------------------------------------------------------------------------- ...