2012-05-24 2 views
1

Je veux ajouter product variations à ma table d'affichage de produit qui utilise le Zend_Paginator.Manipuler les données de Zend_Paginator

Avec ce code, j'obtiens mes produits.

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

Avec ce code je crée le paginator

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

Et maintenant, je suis en train d'ajouter le product_variations aux données de produit. Je suis en train de le faire:

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

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

} 

Mais dans mon contrôleur de vue que le product_data sera affiché. Le tableau (Variations) est manquant.

Comment puis-je gérer cela?

TIA FRGTV10

Répondre

2

Voir ceci: 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); 

Notez que le & dans foreach() - passe par référence. Ensuite, vous modifiez le $product référencé et n'avez pas besoin d'attribuer quelque chose à $paginator.

+1

Pour le rendre plus Zend like, créez votre propre adaptateur et étendez la méthode getItems() - comme décrit ici: http://framework.zend.com/manual/fr/zend.paginator.usage.html#zend.paginator .usage.dbselect et répondu ici: http://stackoverflow.com/questions/4146158/zend-paginator-return-as-objects (grand, exemple direct) et c'est vraiment extrêmement simple. – jkulak

Questions connexes