Yii2让关联字段支持搜索功能
来源:互联网 发布:深入浅出数据分析图书 编辑:程序博客网 时间:2024/04/29 06:21
Yii2让关联字段支持搜索功能
这里有两张表,表结构如下,companies_compay_id 为外键
yii2advanced.branches表
branch_id:int(11)
companies_company_id:int(11)
branch_name:varchar(100)
branch_address:varchar(255)
branch_created_date:datetime
branch_status:enum('active','inactive')
yii2advanced.companies表
company_id:int(11)
company_name:varchar(100)
company_email:varchar(100)
company_address:varchar(255)
logo:varchar(200)
company_start_date:datetime
company_create_date:datetime
company_status:enum('active','inactive')
在上面表中,可以用companiesCompany.company_name来获取公司名,不过这样是不支持搜索的。
想要支持搜索功能,需要在branches的index视图添加以下代码
- <?= GridView::widget([
- 'dataProvider' => $dataProvider,
- 'filterModel' => $searchModel,
- 'columns' => [
- ['class' => 'yii\grid\SerialColumn'],
- //添加的代码开始
- [
- 'label'=>'公司名',
- 'attribute'=>'companies_company_id',
- 'value'=>'companiesCompany.company_name'
- ],
- //添加的代码结束
- 'companiesCompany.company_name',
- // 'branch_id',
- // 'companies_company_id',
- 'branch_name',
- 'branch_address',
- 'branch_created_date',
- // 'branch_status',
- ['class' => 'yii\grid\ActionColumn'],
- ],
- ]); ?>
然后修改SearchBranches.php
修改rules方法为
- public function rules()
- {
- return [
- [['branch_id'], 'integer'],
- [['branch_name', 'branch_address', 'branch_created_date', 'branch_status','companies_company_id'], 'safe'],
- ];
- }
修改search方法
- public function search($params)
- {
- $query = Branches::find();
- $dataProvider = new ActiveDataProvider([
- 'query' => $query,
- ]);
- $this->load($params);
- if (!$this->validate()) {
- // uncomment the following line if you do not want to any records when validation fails
- // $query->where('0=1');
- return $dataProvider;
- }
- // 添加下面这行代码
- $query->joinWith('companiesCompany');
- $query->andFilterWhere([
- 'branch_id' => $this->branch_id,
- // 'companies_company_id' => $this->companies_company_id,
- 'branch_created_date' => $this->branch_created_date,
- ]);
- $query->andFilterWhere(['like', 'branch_name', $this->branch_name])
- ->andFilterWhere(['like', 'branch_address', $this->branch_address])
- ->andFilterWhere(['like', 'branch_status', $this->branch_status])
- // 添加下面这行代码
- ->andFilterWhere(['like', 'companies.company_name', $this->companies_company_id]);
- return $dataProvider;
刷新页面即可看到
0 0
- Yii2让关联字段支持搜索功能
- Yii2实现让关联字段支持搜索功能的方法
- Yii2-GridView 中让关联字段带搜索和排序功能
- Yii2-GridView 中让关联字段带搜索和排序功能
- Yii2-GridView 自定义关联字段带搜索和排序功能
- yii2 关联字段设置排序
- dede如何添加搜索功能, 让网站支持搜索
- Yii2同时搜索多个字段
- YII2原生SQL分页支持排序搜索
- yii2-分页,Yii2实现带搜索的分页功能
- yii2下拉框带搜索功能
- 怎么让dedecms搜索页面支持标签调用及自定义字段调用
- 怎么让dedecms搜索页面支持标签调用及自定义字段调用
- 让dedecms搜索页面支持标签调用及自定义字段调用的方法
- 让 UISearchBar 支持空搜索
- Yii2实现跨mysql数据库关联查询排序功能
- [联表] -- Yii2实现跨mysql数据库关联查询排序功能
- 让minimo支持下载功能
- 【code】flex给组件添加滚动条
- DuiVision开发教程(14)-DUI控件基础类
- 一些关于JavaScript的七零八落
- spring mvc整合ireport终极解结方案,解决HTML图片不显示的问题
- 【java基础】——java概述
- Yii2让关联字段支持搜索功能
- 【code】flex_抛自定义事件
- Yii2同时搜索多个字段
- iOS开发Delegate,Notification,Block使用心得
- 题解 cf div2 193B
- C++继承、虚继承、虚函数类的大小问题
- 冒泡排序
- Java编写图片上传服务器
- 优化WebView nativeOnDraw failed; clearing to background color及其根本原因