全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Yii2-GridView 中让关联字段带搜索和排序功能示例

情境要求:

要在订单(Order)视图的gridview中显示出客户(Customer)姓名,并使其具有与其它字段相同的排序和搜索功能。

数据库结构

订单表order含有字段customer_id 与 客户表customer的id字段关联

首先确保在Order Model中包含以下代码:

public function getCustomer()
{
  return $this->hasOne(Customer::className(), ['id' => 'customer_id']);
}

用gii会自动生成此代码;

第一步:

在OrderSearch添加一个$customer_name变量

class OrderSearch extends Order
{
  public $customer_name; //<=====就是加在这里
}

第二步:

修改OrderSearch中的search函数

public function search($params)
{
  $query = Order::find();
  $query->joinWith(['customer']);<=====加入这句
  $dataProvider = new ActiveDataProvider([
    'query' => $query,
  ]);
  
  $dataProvider->setSort([
    'attributes' => [
      /* 其它字段不要动 */  
      /* 下面这段是加入的 */
      /*=============*/
      'customer_name' => [
        'asc' => ['customer.customer_name' => SORT_ASC],
        'desc' => ['customer.customer_name' => SORT_DESC],
        'label' => 'Customer Name'
      ],
      /*=============*/
    ]
  ]); 

  if (!($this->load($params) && $this->validate())) {
    return $dataProvider;
  }

  $query->andFilterWhere([
    'id' => $this->id,
    'user_id' => $this->user_id,
    'customer_id' => $this->customer_id,
    'order_time' => $this->order_time,
    'pay_time' => $this->pay_time,
  ]);

  $query->andFilterWhere(['like', 'status', $this->status]);
   $query->andFilterWhere(['like', 'customer.customer_name', $this->customer_name]) ;//<=====加入这句
  
  return $dataProvider;
}

第三步:

修改order/index视图的gridview

<?= GridView::widget([
  'dataProvider' => $dataProvider,
  'filterModel' => $searchModel,
  'columns' => [
    ['class' => 'yii\grid\SerialColumn'],
    'id',
    'customer_id', 
    'status',
    ['label'=>'客户', 'attribute' => 'customer_name', 'value' => 'customer.customer_name' ],//<=====加入这句
    ['class' => 'yii\grid\ActionColumn'],
  ],
]); ?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# yii2  # gridview  # 排序  # 关联表  # 关联  # Yii2.0小部件GridView(两表联查/搜索/分页)功能的实现代码  # yii2实现分页  # 带搜索的分页功能示例  # Yii2实现同时搜索多个字段的方法  # Yii2实现让关联字段支持搜索功能的方法  # Yii2 ActiveRecord多表关联及多表关联搜索的实现  # 浅析Yii2 GridView实现下拉搜索教程  # yii2实现根据时间搜索的方法  # yii2带搜索功能的下拉框实例详解  # Yii2框架整合Xunsearch搜索引擎的方法  # yii2组件之下拉框带搜索功能的示例代码(yii-select2)  # Yii2.0框架实现带分页的多条件搜索功能示例  # 这句  # 要在  # 这段  # 使其  # 第二步  # 第三步  # 自动生成  # 大家多多  # 加在  # 搜索功能  # return  # strong  # hasOne  # className  # gt  # gii  # lt  # search  # extends  # OrderSearch 


相关文章: 我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  建站主机类型有哪些?如何正确选型  专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?  建站之星安装后如何配置SEO及设计样式?  简易网站制作视频教程,使用记事本编写一个简单的网页html文件?  如何有效防御Web建站篡改攻击?  建站主机无法访问?如何排查域名与服务器问题  详解jQuery停止动画——stop()方法的使用  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  婚礼视频制作网站,学习*后期制作的网站有哪些?  学校为何禁止电信移动建设网站?  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  大学网站设计制作软件有哪些,如何将网站制作成自己app?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  浅析上传头像示例及其注意事项  建站主机核心功能解析:服务器选择与网站搭建流程指南  宁波免费建站如何选择可靠模板与平台?  如何基于PHP生成高效IDC网络公司建站源码?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  javascript中对象的定义、使用以及对象和原型链操作小结  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  如何在IIS中新建站点并解决端口绑定冲突?  如何彻底删除建站之星生成的Banner?  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  如何在阿里云ECS服务器部署织梦CMS网站?  制作充值网站的软件,做人力招聘为什么要自己交端口钱?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  网站建设制作需要多少钱费用,自己做一个网站要多少钱,模板一般多少钱?  小型网站制作HTML,*游戏网站怎么搭建?  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  如何快速生成高效建站系统源代码?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  测试制作网站有哪些,测试性取向的权威测试或者网站?  建站之星免费模板:自助建站系统与智能响应式一键生成  如何快速搭建二级域名独立网站?  如何在万网主机上快速搭建网站?  家具网站制作软件,家具厂怎么跑业务?  中山网站推广排名,中山信息港登录入口?  如何快速搭建高效WAP手机网站?  大连网站制作公司哪家好一点,大连买房网站哪个好?    建站之星后台管理系统如何操作?  制作网站的软件免费下载,免费制作app哪个平台好?  家庭建站与云服务器建站,如何选择更优?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  高端网站建设与定制开发一站式解决方案 中企动力  学校免费自助建站系统:智能生成+拖拽设计+多端适配  七夕网站制作视频,七夕大促活动怎么报名? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。