2012-05-24 3 views
1

Zend_Paginator를 사용하는 제품보기 테이블에 product variations을 추가하고 싶습니다.Zend_Paginator 데이터 조작

이 코드를 사용하면 제품을 얻을 수 있습니다. 이 코드

$select = $productModel->select() ... (so on) 

은 내가 매기기에게

$adapter = new Zend_Paginator_Adapter_DbSelect($select); 
$paginator = new Zend_Paginator($adapter); 

을 만들 그리고 지금은 제품 데이터에 product_variations를 추가하려고 해요.

foreach($paginator as $key => $product) { 

    // get variations 
    $variations = $productModel->getProductVariants($product['ID']); 
    // overwrite $product add variations 
    $product['Variations'] = $variations; 
    $paginator->$key = $product; 

} 

를하지만 내보기 컨트롤러에만 product_data이 표시됩니다 :이 일을하려고했다. 배열 (Variations)이 누락되었습니다.

어떻게 처리 할 수 ​​있습니까?

TIA FRGTV10

답변

2

이를 참조하십시오 Adding items to a paginator already created.

foreach($paginator as $key => &$product) { 
    // get variations 
    $variations = $productModel->getProductVariants($product['ID']); 
    // overwrite $product add variations 
    $product['Variations'] = $variations; 
} 
unset($product); 

주목하라 &foreach()로 - 참조 통과. 그런 다음 참조 된 $product을 변경하고 아무 것도 $paginator에 다시 지정할 필요가 없습니다.

+1

젠드를 더 좋아하게 만들려면 여기에 설명 된 것처럼 자신의 어댑터를 만들고 getItems() 메서드를 확장하십시오. http://framework.zend.com/manual/en/zend.paginator.usage.html#zend.paginator .usage.dbselect 및 여기에 답변 : http://stackoverflow.com/questions/4146158/zend-paginator-return-as-objects (위대한, 간단 - 예) 이것은 매우 간단합니다. – jkulak