2010-03-05 3 views
2

Dealing Ok avec des boucles partielles que je veux faire plusieurs chosesZend Framework PartialLoop - Questions

1- Peut-être passe dans des variables supplémentaires - vu faire comme ça

echo $this->partialLoop('Loop.phtml', array('data' => $data, 'var1' => foo)); 

Mais cela ne semble pas fonctionner - Je ne peux pas supplémentaire les données à l'aide $this->var, $this->data->var ou $data->var et je ne suis pas sûr de savoir comment accéder aux données dans la boucle

2- Sutotals pour les colonnes - je besoin d'un moyen de remise à zéro des variables ou en passant une valeur par défaut - l encrée à ce qui précède, je suppose

à savoir

$subtotal += rowTotal; 

3- Dans la vue qui appelle la partie que je voudrais avoir accès aux valeurs de sous-total générés je peux afficher ceux-ci dans un autre tableau ci-dessous.

Toute aide appréciée les docs sur partialLoop semble incomplète.

Répondre

-1

Vous ne pouvez pas transmettre des données "extra" hors bande à l'assistant PartialLoop. Chaque élément itérable du second argument (modèle) sera bouclé. Ainsi, si vous spécifiez quoi que ce soit d'extra dans un tableau à cet assistant, il sera itéré dans une boucle et produira une sortie indésirable. Pour contourner ce problème, vous pouvez faire référence à $ this-> view-> var dans l'assistant. $ this-> view fait toujours référence à la vue appelante, de sorte que vous pouvez accéder à n'importe quelle variable de vue de cette manière dans l'assistant.

+0

pas vrai, il peut être atteint, voir ma réponse. – markus

0

Je peux avoir terminé avec un peu de code supplémentaire. L'assistant partialLoop est satisfait de tout tableau. La seule chose à faire est de lancer votre ensemble de lignes dans le contrôleur et de déplacer les données dans un nouveau tableau où vous pouvez ajouter vos variables supplémentaires pour chaque rangée.

Ensuite, vous passez ce nouveau tableau à la vue et, finalement, à l'assistant.

+0

ressemble à une solution de contournement laide. Si vous aviez un tableau de 1000 éléments, vous ajouteriez beaucoup à chaque ligne. – timpone