首页 » PHP » Yii2的Gridview搜索关联表的字段

Yii2的Gridview搜索关联表的字段

7153 4

Yii2的Gridview功能十分强大,我们通常用它来展示一张数据表的信息,可以通过对其model定义hasOne来关联到其他表中的字段来显示,但对于其他表的字段搜索应该怎么做呢?

例如,tiandi手上有两张表,一张订单表Order,字段信息如下:

另外有一张商户信息表Business,字段信息如下:

需要在Gridview里输入商户名称进行模糊查询匹配到的订单:

在订单表的model添加以下代码,来获取关联表商户的信息

    public function getBusiness()
    {
        return $this->hasOne(Business::className(), ['id' => 'business_id']);
    }

打开订单表的SearchModel,添加一个字段变量,并在rules里,将该变量加进去。

class OrdersSearch extends Orders
{
    public $business_cname;
    ....

在search方法里添加下面这一行。

$query->andFilterWhere(['like', 'business_cname', $this->business_cname]) ;

前台显示的地方用

'attribute' => 'customer_name',   //没有实际意义了
'value' => 'business.business_cname',    //model里hasOne对应的属性
'filter' => Html::activeTextInput($searchModel, 'business_cname', [      
     'class' => 'form-control'
]),//business_cname为search里的参数

好了,刷新页面看下吧,很简单吧。

文章评分1次,平均分5.0

本文原始地址:https://www.tiandiyoyo.com/2018/08/how-to-search-another-table-field-on-gridview/
本站所有文章,除了特别注明外,均为本站原创,转载请注明出处来自www.tiandiyoyo.com

您可能还会对以下文章感兴趣:

评论前先开启评论开关:


4 Comments

  1. 郑永 :

    不翻一下日志,都差点忘了你,哈哈。

载入分页评论...