Zend Framework comment obtenir le numéro d'article dans la boucle? partialLoop partialCounter et?
-
18-09-2019 - |
Question
Je veux faire un traitement particulier pour le dernier élément d'une partialLoop
, documentation mentionner au sujet de $this->partialCounter
mais pas la variable avec le nombre total d'articles ...
<?php
if( $this->partialCounter == $mysteryvariable -1 ):
?>
Il me manque quelque chose que je pense ... ne peut pas obtenir ma main sur cette variable ...
La solution
Zend_Registy::set('PartialCount', count($iterable));
$this->partialLoop($script,$iterable);
puis dans votre vue
$count = Zend_Registy::get('PartialCount');
Rapide et merdique, mais travailler. Autre moyen serait de d'étendre aide PartialLoop;)
Autres conseils
Pour obtenir le nombre total d'éléments, vous devrez étendre soit Zend_View_Helper_PartialLoop pour fournir une méthode qui renvoie le nombre de l'objet itérable utilisé par le PartialLoop.
Ou, et je dirais que cela est probablement plus facile, juste obtenir le nombre d'éléments dans l'objet avant de le transmettre dans le PartialLoop puisque vous devez soit un objet Traversable ou un tableau réel dans l'aide PartialLoop et à la fois mettre en œuvre support de comptage ().
De la documentation:
<?php // partialLoop.phtml ?>
<dt><?php echo $this->key ?></dt>
<dd><?php echo $this->value ?></dd>
<?php // MyController.php
public function indexAction()
{
$this->view->$model = array(
array('key' => 'Mammal', 'value' => 'Camel'),
array('key' => 'Bird', 'value' => 'Penguin'),
array('key' => 'Reptile', 'value' => 'Asp'),
array('key' => 'Fish', 'value' => 'Flounder'),
);
$this->view->modelCount = count($this->view->model);
}
De index.phmtl
<p>Count: <?= $this->modelCount ?></p>
<dl>
<?php echo $this->partialLoop('partialLoop.phtml', $this->model) ?>
</dl>
Je savais que c'est un vieux problème, mais dans ZF 1.12.1 cela sera corrigé. Jusque-là, il y a un patch pour obtenir sous l'URL suivante:
http://framework.zend.com/issues/browse/ZF-7151
Cordialement, Sascha