Zend Framework ¿Cómo obtener el número de elementos en el bucle? parcialloop parcialcounter y?
-
18-09-2019 - |
Pregunta
Quiero hacer un procesamiento particular para el último elemento de un partialLoop
, la documentación mencionar $this->partialCounter
Pero no la variable con el número total de elementos ...
<?php
if( $this->partialCounter == $mysteryvariable -1 ):
?>
Me estoy perdiendo algo, creo ... No puedo poner mi mano sobre esa variable ...
Solución
Zend_Registy::set('PartialCount', count($iterable));
$this->partialLoop($script,$iterable);
Y luego en tu opinión
$count = Zend_Registy::get('PartialCount');
Rápido y horrible, pero trabajando. Otra forma sería extender el ayudante parcialloop;)
Otros consejos
Para obtener el número total de elementos, deberá extender Zend_View_Helper_Partialloop para proporcionar un método que devuelva el recuento del objeto Iterable que el utiliza parcialloop.
O, y yo diría que esto probablemente sea más fácil, solo obtenga el recuento de elementos en el objeto antes de pasarlo al parcialloop ya que tiene que pasar un objeto transversable o una matriz real al ayudante parcialloop y ambos implementan soporte para el recuento ().
De la documentación:
<?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>
Sabía que este es un viejo problema, pero en ZF 1.12.1 esto se solucionará. Hasta entonces, hay un parche para tener la siguiente URL:
http://framework.zend.com/issues/browse/zf-7151
Saludos, Sascha