YII

2016-09-15 7 views
0
에 배열에 기준을 전달하는 방법을

나는 ..YII

$Provider1 = new CSqlDataProvider($Query1, array('pagination'=>false)); 
$Result1 = $bProvider->getData(); 

$Provider2 = new CSqlDataProvider($Query2, array('pagination'=>false)); 
$Result2 = $bProvider->getData(); 

그런 다음 두 배열을 병합 메신저 것은 $Result가 100 +

같은 여러 레코드를 포함하는이 배열로

$Result = array_merge($Result1, $Result2); 

을 다음 쿼리 결과 한

여기 페이지 매김에 대해 시도한 내용이 있습니다.

// Counting array result for pagination 
    $item_count = count($timelineResult); 
    $page_size = 10; 
    $pages = new CPagination($item_count); 
    $pages->setPageSize($page_size); 

    $end = ($pages->offset + $pages->limit <= $item_count ? $pages->offset + $pages->limit : $item_count); 

    $criteria = new CDbCriteria(); 
    $criteria->limit = $end; 
    $criteria->offset = $pages->offset; 

이제 문제는 내가 당신이 CArrayDataProvider를 사용해야합니다 내가 추천 내 $Result

+0

아마 CPagination 및 CDbCriteria 대신 http://www.yiiframework.com/doc/api/1.1/CArrayDataProvider를 사용할 수 있습니다. U는 배열을 넣고 생성자에서 페이지 매김을 설정할 수 있습니다. CDbCriteria는 u가 이미 결과가있을 때가 아니라 질의하는 데 사용됩니다. – Szymon

답변

1

$criteria을 적용 할 방법이다. 이미 $Result이라는 배열에 결과가 있고 페이지 번호 코드에서 CDbCriteria을 제거하면 이렇게됩니다.

$item_count = count($Result); 
$page_size = 10; 
$pages = new CPagination($item_count); 
$pages->setPageSize($page_size); 

$page_size = 10 우리가 여기 CArrayDataProvider에 대해 동일한 페이지 크기 10를 사용해야은 CArrayDataProvider를 사용하는 방법이다 :이 같은 배열의 결과를 얻을 다음

$dataProvider=new CArrayDataProvider($Result, array(
     'pagination'=>array(
      'pageSize'=>$page_size, 
     ), 
    )); 

을하고 ..

$MyResult = $dataProvider->getData(); 

나는 그것이 당신을 위해 작동하기를 바랍니다.