2

我想对 a 的最后一项进行特定处理partialLoop文档中提到$this->partialCounter但没有提到带有项目总数的变量...

<?php
if( $this->partialCounter == $mysteryvariable -1 ): 
?>

我错过了一些我认为...无法掌握该变量的东西...

4

3 回答 3

4

为了获得项目的总数,您必须扩展 Zend_View_Helper_PartialLoop 以提供一个返回 PartialLoop 正在使用的可迭代对象的计数的方法。

或者,我会说这可能更容易,只需在将对象传递给 PartialLoop 之前获取对象中的项目数,因为您必须将 Traversable 对象或实际数组传递给 PartialLoop 帮助器,并且都实现对计数的支持()。

从文档中:

<?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>
于 2009-11-09T07:53:15.107 回答
2
Zend_Registy::set('PartialCount', count($iterable));
$this->partialLoop($script,$iterable);

然后在你看来

$count = Zend_Registy::get('PartialCount'); 

又快又蹩脚,但工作。其他方法是扩展 PartialLoop 助手;)

于 2009-11-09T13:46:13.173 回答
0

我知道这是一个老问题,但在 ZF 1.12.1 中这将得到修复。在此之前,有一个补丁可以在以下 URL 下获取:

http://framework.zend.com/issues/browse/ZF-7151

问候,萨沙

于 2013-02-19T09:32:31.937 回答