如何从多个查询中分页yii2?

时间:2017-08-18 15:09:11

标签: php yii2

我想在yii2中对我的结果进行分页。但是我要从多个表中分页。 这是我的站点控制器的动作代码:

<?
public function actionPagination_product(){
$query=Product::find();

$count=$query->count();

$pagination=new Pagination(['totalCount' => $count, 'defaultPageSize' => 1]);

 $models = $query->offset($pagination->offset)
      ->limit($pagination->limit)
      ->all();
	  
	     return $this->render('pagination_pro', [
      'models' => $models,
      'pagination' => $pagination,
   ]);

}


?>

这是我的观点:

<?php
   use yii\widgets\LinkPager;
?>
<?php foreach ($models as $model): ?>

 <div class="list-group">
  <a href="#" class="list-group-item active">
    <h4 class="list-group-item-heading"><?= $model->title; ?></h4>
    <p class="list-group-item-text"><?= $model->id; ?></p>
	 <p class="list-group-item-text"><?= $model->body; ?></p>
  </a>
</div>

  
   <br/>
<?php endforeach; ?>
<?php
   // display pagination
   echo LinkPager::widget([
      'pagination' => $pagination,
   ]);
?>

这是用于在多个表中搜索而我无法加入它们。

例如,我想在此分页中读取Report :: find()

怎么做?

1 个答案:

答案 0 :(得分:0)

我不确定我是否正确理解你的问题。但如果你的问题是“我无法加入他们”。您可以使用控制器中的类似的东西加入要显示的表:

$model = Report::find()
->join('INNER JOIN', 'otherModel', 'otherModel.report_id = report.id');
->all();

这样您就可以在变量$ model中获得所需的所有数据,然后就可以随意执行任何操作。