Добавление элементов в Zend_Paginator уже создано? - PullRequest
1 голос
/ 05 февраля 2010

в моем контроллере я создал экземпляр paginator, подобный этому:

// On crée un objet paginator pour afficher un tableau de résultat.
$paginator = Zend_Paginator::factory($versions->getVersions($projectId));
$paginator->setCurrentPageNumber($this->_getParam('page'));
$paginator->setItemCountPerPage(15);

Затем я повторяю свое мнение следующим образом:

<? foreach ($this->paginator as $item): ?>
    <? ($flag == "pair") ? $flag = "impair" : $flag = "pair"; ?>
    <tr class="<?= $flag; ?>">
        <!-- version nom de la version -->
        <td>
            <a href="<?= $this->url(array('module' => "admin", 'controller' => "version", 'action' => "index", 'project' => $item['idversion'])); ?>">
                <?= $item['lab_version']; ?>
            </a>
        </td>
        <!-- version nom du project -->
        <td><?= $item['name_patrimony']; ?></td>
        <!-- version retrodocumente ? -->
        <td class="version-retrodoc">
            <a href="<?= $this->url(array("module" => "doxygen", "controller" => "doxygen", "action" => "create", "version" => $item['idversion']), null, true); ?>">
                <img src="<?= $this->baseUrl() . '/img/system-run.png' ?>" alt="retrodocumenté"/>
             </a>
        </td>
    </tr>
<? endforeach; ?>

Но в моем контроллере я бы справился с некоторыми условиями. Мой экземпляр paginator представляет собой коллекцию версий проекта. Поэтому я бы справился, если домашний каталог был правильно создан, если информация о версии правильно вставлена ​​в БД ... Все, что проверяется в контроллере. Моя цель состоит в том, чтобы добавить эти переменные (в большинстве случаев логические) и добавить их в экземпляр paginator, чтобы затем я перебрал их в представлении и добавил сообщение об ошибке.

PS: Если кто-то может сказать мне, как правильно форматировать php-код в Stackoverflow, было бы полезно: -).

1 Ответ

1 голос
/ 04 февраля 2011

Я думаю, что должно быть возможно добавить значение к элементу в вашем paginator. Тем не менее, точная методология будет зависеть от вашего адаптера, который вы используете в paginator. В качестве примера я приведу фрагмент, который показывает, как добавить значение к элементу в paginator, который использует адаптер массива.

    // somewhere in your controller:

    $input = array(
        array(
            'firstname' => 'somename',
            'lastname' => 'somelastname',
            'location' => 'somelocation'
        ),
        array(
            'firstname' => 'somename2',
            'lastname' => 'somelastname2',
            'location' => 'somelocation2'
        )
    );

    $paginator = Zend_Paginator::factory($input);
    $paginator->setCurrentPageNumber(1);

    foreach ($paginator as $key => &$value) {

        // performe some logic to check if the home directory has been correctly created
        // and the boolean value to represent this (in this example it is always false).
        $value['newVariable'] = false;
        var_dump($value);
    }

Немного поздно, но я надеюсь, что это будет полезно, если не для вас, возможно, для некоторых других людей, которые могут иметь аналогичные проблемы.

...