Zend Framework Как получить количество элементов в цикле? PartialLoop PartialCounter и?
-
18-09-2019 - |
Вопрос
Я хочу сделать конкретную обработку для последнего элемента partialLoop
, документация упоминание о $this->partialCounter
но не переменная с общим количеством элементов ...
<?php
if( $this->partialCounter == $mysteryvariable -1 ):
?>
Мне не хватает чего -то, я думаю ... не могу получить руку на эту переменную ...
Решение
Zend_Registy::set('PartialCount', count($iterable));
$this->partialLoop($script,$iterable);
А потом, по вашему мнению
$count = Zend_Registy::get('PartialCount');
Быстро и дерьмо, но работает. Другим способом будет продлить Partialloop jerper;)
Другие советы
Чтобы получить общее количество элементов, вам придется либо расширить zend_view_helper_partialloop, чтобы предоставить метод, который возвращает количество итерабильного объекта, используемого Partialloop.
Или, и я бы сказал, что это, вероятно, проще, просто получите количество элементов в объекте, прежде чем перенести его в PartialLoop, поскольку вам нужно передать либо обходной объект, либо фактическое массив в The Partialloop Helper и оба реализуйте поддержку для счета ().
Из документации:
<?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);
}
От index.phmtl
<p>Count: <?= $this->modelCount ?></p>
<dl>
<?php echo $this->partialLoop('partialLoop.phtml', $this->model) ?>
</dl>
Я знал, что это старая проблема, но в ZF 1.12.1 это будет исправлено. До тех пор есть патч, чтобы попасть под следующий URL:
http://framework.zend.com/issues/browse/zf-7151
С уважением, саша