2

の最後のアイテムに対して特定の処理を行いたいのですがpartialLoopドキュメント$this->partialCounterにはアイテムの総数を含む変数については記載されていませんが、...

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

私は私が思う何かを逃しています...その変数を手に入れることができません...

4

3 に答える 3

4

アイテムの総数を取得するには、Zend_View_Helper_PartialLoopを拡張して、PartialLoopによって使用されている反復可能なオブジェクトの数を返すメソッドを提供する必要があります。

または、これはおそらく簡単だと思います。Traversableオブジェクトまたは実際の配列のいずれかをPartialLoopヘルパーに渡す必要があり、両方ともカウントのサポートを実装する必要があるため、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

これは古い問題であることはわかっていましたが、ZF1.12.1では修正される予定です。それまでは、次のURLの下にあるパッチがあります。

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

よろしく、サシャ

于 2013-02-19T09:32:31.937 に答える