zendフレームワークループでアイテムの数を取得する方法は? 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ヘルパーを拡張することです;)
他のヒント
アイテムの総数を取得するには、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
よろしく、サシャ
所属していません StackOverflow