إطار 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'); 

سريع وكرابي، ولكن العمل. طريقة أخرى ستكون لتمديد المساعد الجزرية)؛)

نصائح أخرى

من أجل الحصول على العدد الإجمالي للعناصر، سيتعين عليك إما تمديد zend_view_helper_partialloop لتوفير طريقة تعرض عدد الكائن القابل للتأكد من استخدامه بواسطة 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