Добавление элементов в Zend_Paginator уже создано?
В моем контроллере я создал экземпляр 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-код в Stackru, это было бы полезно:-).
1 ответ
Я думаю, что должно быть возможно добавить ценность к пункту в вашем 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);
}
Немного поздно, но я надеюсь, что это будет полезно, если не для вас, может быть, для некоторых других людей, которые могут иметь аналогичные проблемы.