Внедрение значения изменения Zend Pagination

В Zend_Paginator

Я пытаюсь изменить одно из значений объекта paginator после результата базы данных

Я просматриваю пагинатор - получаю предмет, а затем отправляю ранг

Однако это не переносится на разбивку на страницы, а ранг равен NULL.

    // Loop through the results and get the users Rank
    foreach ($paginator as $k => $v) {

        $rowSet       = $paginator->getItem($i);
        $rowSet->rank = $table->getRanking($rowSet->score);

        echo $rowSet->first_name . '<br />';
        echo $rowSet->rank . '<br />';

        $i++;
    }

    $this->view->paginator = $paginator;

person Ian Warner    schedule 15.07.2010    source источник
comment
функция getRanking возвращает значение null? также каково значение $rowSet-›score?   -  person MANCHUCK    schedule 16.07.2010


Ответы (2)


Просто используйте итератор Paginator следующим образом:

foreach ( $paginator as &$item )
{
    $item->rank = $table->getRanking($item->score);
}

Обратите внимание на &$item, который делает $item ссылкой на фактический $item, а не на копию $item.

person Marin Purgar    schedule 23.09.2011

Это действительно не то, как вы должны использовать циклы foreach. Вы даже не используете $k или $v внутри foreach. текст ссылки

person Iznogood    schedule 16.07.2010
comment
Вопрос был о Paginator, а не о том, как создавать циклы foreach. - person Ian Warner; 23.01.2013
comment
@IanWarner прав, но ваш код был сломан, и я указал на это. 3 года назад лол. Вы имеете право на свое мнение, конечно. - person Iznogood; 23.01.2013