【发布时间】:2020-02-20 11:25:26
【问题描述】:
我正在尝试将来自不同查询的数据合并到一个活动记录中以进行分页
我有两个具有相似表的不同数据库,即
db1
tbl_products
id,quantity,price
现在在 db2 上
db2
tbl_products
id,quantity,price
所以我有两个具有不同连接的模型,第一个模型连接到 db1,第二个模型连接到 db2
class ProductsDb1 extends ActiveRecord{
public static function getDb()
{
return 'db1'
}
}
class ProductsDb2 extends ActiveRecord{
public static function getDb()
{
return 'db2'
}
}
所以现在在我当前的查询中
$db1productsQuery = ProductsDb1::find()->where(...)
$db2productsQuery = ProductsDb2::find()->where(...);
在我的 ActiveDataProvider 上,我正在传递我的查询,例如
$data = new ActiveDataProvider([
'query' => $db1productsQuery, //pass the dbproducts query
'sort' => ['defaultOrder' => ['quantity' => SORT_DESC]],
'pagination' => [
'pageSize' => $arr['perPage'],
'page' => $arr['page']
],
]);
如上所述,我必须为每个查询创建多个 activeDataProviders 并分别返回数据。是否可以将两个查询合并或添加到单个 ActiveDataProvider 而不必为每个查询创建每个数据提供程序
【问题讨论】:
标签: php yii2 yii2-model yii2-active-records