最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Yii2-GridView 中讓關(guān)聯(lián)字段帶搜索和排序功能示例

 更新時(shí)間:2017年01月21日 16:27:09   作者:散步在操場(chǎng)上  
這篇文章主要介紹了Yii2-GridView 中讓關(guān)聯(lián)字段帶搜索和排序功能示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。

情境要求:

要在訂單(Order)視圖的gridview中顯示出客戶(Customer)姓名,并使其具有與其它字段相同的排序和搜索功能。

數(shù)據(jù)庫(kù)結(jié)構(gòu)

訂單表order含有字段customer_id 與 客戶表customer的id字段關(guān)聯(lián)

首先確保在Order Model中包含以下代碼:

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

用gii會(huì)自動(dòng)生成此代碼;

第一步:

在OrderSearch添加一個(gè)$customer_name變量

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

第二步:

修改OrderSearch中的search函數(shù)

public function search($params)
{
  $query = Order::find();
  $query->joinWith(['customer']);<=====加入這句
  $dataProvider = new ActiveDataProvider([
    'query' => $query,
  ]);
  
  $dataProvider->setSort([
    'attributes' => [
      /* 其它字段不要?jiǎng)?*/  
      /* 下面這段是加入的 */
      /*=============*/
      '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'],
  ],
]); ?>

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

稷山县| 勃利县| 临邑县| 绥滨县| 海安县| 长沙市| 安新县| 平凉市| 大关县| 普格县| 彭山县| 惠来县| 喀喇沁旗| 尉氏县| 平远县| 东至县| 延川县| 高台县| 攀枝花市| 蒙山县| 荃湾区| 塘沽区| 平潭县| 防城港市| 南充市| 台南市| 奎屯市| 临猗县| 安吉县| 安泽县| 德保县| 安乡县| 涡阳县| 和政县| 罗山县| 界首市| 西林县| 兰州市| 玉树县| 黎川县| 读书|