日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

yii2 mysql like_Yii2实现跨mysql数据库关联查询排序功能

發布時間:2025/4/5 数据库 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 yii2 mysql like_Yii2实现跨mysql数据库关联查询排序功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

遇到一個項目,需要跨表網上找了很多的資料,整理一下,方便以后再次使用

背景:在一個mysql服務器上(注意:兩個數據庫必須在同一個mysql服務器上)有兩個數據庫:

memory (存儲常規數據表) 中有一個 user 表(記錄用戶信息)

memory_stat (存儲統計數據表) 中有一個 user_stat (記錄用戶統計數據)

現在在 user 表生成的 GridView 列表中展示 user_stat 中的統計數據

只需要在User的model類中添加關聯.

public functiongetStat()

{return $this->hasOne(UserStat::className(), ['user_id' => 'id']);

}

在GridView就可以這樣使用來展示統計數據

= GridView::widget(['dataProvider' => $dataProvider,

'columns' =>[//其他列

['label' => '統計數據',

'value' => function($model){return isset($model->stat->data) ? $model->stat->data : null;

}

],

//其他列

],]);?>

或者這樣

= GridView::widget(['dataProvider' => $dataProvider,

//'filterModel' => $searchModel,

'columns' =>[//['class' => 'yii\grid\SerialColumn'],

['label' => '數據統計',

'attrube'=>'data' //輸入對應的

'value' => 'stat.data'],['class' => 'yii\grid\ActionColumn'],],]);?>

現在增加了一個需求,需要在user GridView 列表中對統計數據進行排序和篩選

若 user 和 user_stat 表在同一個數據庫下我們可以這樣做:

UserSearch:

public $data;public functionrules()

{/*{{{*/

return[

['data'], 'integer'],

//其他列

];

}/*}}}*/

public function search($params, $onlyActiveUsers = false)

{$query = User::find();$query->joinWith(['stat']);$dataProvider = newActiveDataProvider(['query' => $query,

'sort' =>['attributes' =>[//其他列

'data' =>['asc' => [UserStat::tableName() . '.data' => SORT_ASC],

'desc' => [UserStat::tableName() . '.data' => SORT_DESC],],

//其他列

],

'defaultOrder' =>['id' => SORT_DESC,],],

'pagination' =>['pageSize' => 50,],]);$this->load($params);if (!$this->validate()) {$query->where('0=1');return $dataProvider;

}$query->filterWhere([//其他列

UserStat::tableName() . '.data' => $this->data

]);return $dataProvider;

}

search 表單中添加以下列就可以篩選了

//其他列

= $form->field($model, 'data')?>

//其他列

= Html::submitButton('Search', ['class' => 'btn btn-primary']) ?>

那么,如何來解決這個問題呢?

其實很簡單,只需要重寫 user_stat 的 model 類下的 tableName() 方法就可以了。

//默認是這樣的

public static functiontableName()

{return 'user_stat';

}public static functiongetDb()

{return Yii::$app->get('dbStat');

}

//只需要在表明前添加數據庫名

public static functiontableName()

{return 'memory_stat.user_stat';

}public static functiongetDb()

{return Yii::$app->get('dbStat');

}

轉載:https://segmentfault.com/a/1190000008107267

侵刪!!!

總結

以上是生活随笔為你收集整理的yii2 mysql like_Yii2实现跨mysql数据库关联查询排序功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲成人网在线播放 | 播播开心激情网 | 久久婷婷久久 | 青草视频免费观看 | 精品国产黄色 | 在线免费黄 | 日本老妇高潮乱hd | 日韩欧美成人一区 | av一起看香蕉 | 原创真实夫妻啪啪av | av一级二级 | 懂色av一区二区三区免费观看 | 美女日批网站 | 精品理论片 | www.在线观看视频 | 国产无玛 | 91视频成人 | 97视频在线观看免费 | 高潮白浆女日韩av免费看 | 国内精品国产三级国产aⅴ久 | 性爽爽| 国产免费中文字幕 | 成人日b视频 | 91精品国产一区 | 产乳奶汁h文1v1 | 亚州av综合色区无码一区 | 国产91麻豆视频 | 日产电影一区二区三区 | 黄色一级片在线看 | 日韩成人在线观看视频 | 亚洲无限看 | xxxxhd欧美| 国产电影一区二区三区爱妃记 | 免费av动漫 | 中文字幕第一区 | 国产老女人精品毛片久久 | 日韩阿v| 女同互舔视频 | 日韩全黄 | 欧美日韩成人精品 | 无码av天堂一区二区三区 | 久久精品人人做人人爽 | 欧美xxxx免费虐 | 邪恶久久| 精品国产综合区久久久久久 | 波多野吉衣在线视频 | 成人亚洲一区 | 国产精品久久久久aaaa | 国产午夜性春猛交ⅹxxx | 亚洲日本欧美精品 | 亚洲福利在线播放 | 精品国产制服丝袜高跟 | 日韩中字在线 | 人妻少妇偷人精品久久久任期 | 中文字幕日韩精品无码内射 | 青青草国产在线视频 | 免费黄色一级视频 | 97超级碰碰碰 | 欧美成人国产 | 亚洲国产极品 | 美女张开腿让男人桶爽 | 在线观看aa| 免费的黄色av | 青青操视频在线播放 | 天堂av网在线| 国产在线中文 | 欧美在线视频第一页 | 国产二区免费 | 亚洲GV成人无码久久精品 | 亚洲在线日韩 | 久草视频在 | 99精品久久久久久中文字幕 | 日本欧美韩国国产精品 | 加勒比一区二区 | 深夜福利一区二区三区 | 国产欧美日韩一区二区三区 | 尤物视频免费在线观看 | 天天操操夜夜操操 | 热久久网站 | 99热99| 直接看的av | 欧美激情一区二区三区蜜桃视频 | 欧美性猛交乱大交3 | 国产夜夜操 | 欧美一区二区三区婷婷月色 | 日本在线高清视频 | 中文字幕无码毛片免费看 | 亚洲三级黄色 | 老熟女毛茸茸浓毛 | 91cn.com| 国产让女高潮的av毛片 | 欧美性猛交xxxxx水多 | 五月天视频 | 麻豆影视大全 | 又嫩又硬又黄又爽的视频 | av网址导航| ass日本粉嫩pics珍品 | 女人天堂网 | 国产一级视频在线播放 |