yii2,有一个Order模型,由于测试数据量增加,需要拆分数据存放2张订单表,分别是:order_1、order_2,每个表有100万条数据,问题是:如何在后台对2个表同时搜索查询,并分页展示在列表页;每页展示10条数据。正常一张表情况下的查询代码如下,请修改下面代码适合2张表查询:
public function actionIndex()
{
$searchModel = new SearchModel([
'model' => Order::class,
'scenario' => 'default',
'partialMatchAttributes' => ['mobile'], // 模糊查询
'defaultOrder' => [
'id' => SORT_DESC
],
'pageSize' => $this->pageSize
]);
$query = $searchModel->search(Yii::$app->request->queryParams);
$query->query
->andWhere(['>=', 'status', 1])
->andFilterWhere(['merchant_id' => $this->getMerchantId()])
->with(['tags', 'merchant']);
return $this->render($this->action->id, [
'dataProvider' => $query,
'searchModel' => $searchModel,
]);
前端代码为:
……(省略)
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'headerRowOptions' => [
'class' => 'table-header-wrap'
],
'columns' => [
[
'class' => 'yii\grid\SerialColumn',
'visible' => true, // 不显示#
],
[
'attribute' => 'order_id',
'filter' => false, //不显示搜索框
'headerOptions' => ['class' => 'col-md-1'],
],
……(省略)