zendフレームワークループでアイテムの数を取得する方法は? Partialloop Partialcounterと?

StackOverflow https://stackoverflow.com/questions/1699588

質問

の最後のアイテムのために特定の処理をしたい 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ヘルパーを拡張することです;)

他のヒント

アイテムの総数を取得するには、zend_view_helper_partialloopを拡張して、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>

私はこれが古い問題であることを知っていましたが、ZF 1.12.1ではこれが修正されます。それまでは、次のURLを下回るパッチがあります。

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

よろしく、サシャ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top