2016-06-23 3 views
2

페이지 매김이 작동하지 않는 두 쿼리를 결합한 후에 페이지 매김을 사용하려고합니다. 그러나 내가 하나의 쿼리를 만들려고 노력하지 않으면 그것이 작동합니다. 다음은 쿼리입니다. 제발 도와주세요.Yii2 페이지 매김 문제 유니온

//First Query 
$first_second = $this->find()->select($strcolumn.', p.featured_name')->from(MYDIRECTORY::tableName().' j')->join('INNER JOIN' ,MYDIRECTORYFEATUREDCLASS::tableName().' p', 'p.featurer_id = j.listdetails_featured_frid')->where(['listdetails_list_frid' => $id['list_id']])->andWhere(['<=', 'listdetails_featured_frid', 2])->andWhere(['listdetails_list_flag' => MYDIRECTORYCLASS::STATUS_ACTIVE])->orderBy(['listdetails_featured_frid'=>SORT_ASC,'listdetails_list_pos'=>new Expression('rand()')]); 

//Second Query 
$second_list = $this->find()->select($strcolumn.', p.featured_name')->from(MYDIRECTORYCLASS::tableName().' j')->join('INNER JOIN' ,MYDIRECTORYFEATUREDCLASS::tableName().' p', 'p.featurer_id = j.listdetails_featured_frid')->where(['listdetails_list_frid' => $id['list_id']])->andWhere(['>', 'listdetails_featured_frid', 2])->andWhere(['listdetails_list_flag' => MYDIRECTORYCLASS::STATUS_ACTIVE])->orderBy(['listdetails_featured_frid'=>SORT_ASC,'listdetails_list_medname'=>SORT_ASC]); 


//Joined Union Query 
$joinedquerys=$first_second->union($second_list); 

$countQuery = clone $joinedquerys; 

$pages = new Pagination(['totalCount' => $countQuery->count(), 'pageSize' => \Yii::$app->params['pagination_limit'],'defaultPageSize' => \Yii::$app->params['pagination_limit'],'forcePageParam' => false,'params' => ['page' => \Yii::$app->request->get('page', 1)] ]); 

$resultArray = $joinedquerys->offset($pages->offset)->limit($pages->limit)->asArray()->all(); 


return $this->render('listing', [ 
      "mylisting" => $resultArray, 
      "pagination" => $pages 
]); 

크게 당신의 dataProvider

<?php 


    $joinedquerys=$first_second->union($second_list); 



    $dataProvider = new SqlDataProvider([ 
    'sql' => $joinedquerys, 

    ]); 

?> 

답변

1

감사 아래와 같은 페이지 매김을 사용하여, 페이지 매김이 작동하지 않을 것 같지만? 어떤 도움이 될 것입니다 놀랍습니다.
+0

감사에게 lot..it를 사용할 수

echo LinkPager::widget([ 'pagination' => $pagination, 'options' => ['class' => 'paginate pag2 clearfix'], 'registerLinkTags' => true, 'prevPageLabel' => \YII::$app->params['linker_page_btn_prev'], 'nextPageLabel' => \YII::$app->params['linker_page_btn_next'], 'maxButtonCount' => \YII::$app->params['linker_page_btn_count'], 'activePageCssClass' => 'current', 'nextPageCssClass' => 'next' ]); 

+0

@BorahAnurup 감사합니다. 내 대답이 맞다면 accedpted으로 표시하고 유용하다고 평가하십시오. – scaisEdge