yii2 跨库操作问题 [ 求助交流 ]
我本地库有一张表是存有N个远程数据库配置的,一行一个库 有什么方法可以读取到远程库中的表,然后用ActiveDataProvider分页组件显示呢?
共 1 条回复
-
$dsn = 'select from config db table'; $db = new Connection($dsn); $provider = new ActiveDataProvider([ 'db' => $db, 'query' => Post::find(), 'pagination' => [ 'pageSize' => 20, ], ]);
大概类似这样,你可以通过数据库配置表构造远程数据库的$dsn,然后构造一个Connection对象连接远程数据库,然后,将这个对象传给DataProvider即可。
共 8 条回复@naivefang $apiweb = new ApiWeb;
$connection = $apiweb->getDatabase($webid); $query = (new Query())->from('cm_category'); //这个地方可以用Post::find() 这样的方式来读取远程表吗? $dataProvider = new ActiveDataProvider([ 'db' => $connection, 'query' => $query, 'pagination' => [ 'pageSize' => 20, ] ]);
@naivefang 这个知道,这样,打个比方,我读远程库AA下的B 表,那这个B表,我能不能在本地backend\modules\B\models 下面做一个B.php的model 我刚才这样做了一个 ,然后里面
public static function tableName() { return 'B'; }
这样子写,接着用 B::find() 这种方式来 获取,提示,不存在表
@naivefang 明白了,这是一个二选一的方式,对吧
@naivefang 好的,谢谢
asialong
注册时间:2015-11-27
最后登录:2021-03-24
在线时长:439小时49分
最后登录:2021-03-24
在线时长:439小时49分
- 粉丝8
- 金钱6065
- 威望10
- 积分10555