我想显示行数:paginator zend framework
示例:
number productname price
1. pen 25.00
2. Pencil 10.00
3. Booklet 12.00
我想要显示行数(数字行)。 (从paginator获得)
答案 0 :(得分:2)
目前我可以想到三种方法可以从/使用paginator获取当前项目编号:
以下示例说明了所有这三种方法:
<强> testAction 强>
public function testAction() {
$input = array(
array(
'productname' => 'somename',
'price' => 23
),
array(
'productname' => 'somename2',
'price' => 657
)
);
$paginator = Zend_Paginator::factory($input);
$paginator->setCurrentPageNumber(1);
$this->view->paginator = $paginator;
}
test.phtml 查看脚本
<div>
<?php foreach ($this->paginator as $key => $item): ?>
Item Number (Method 1): <?php echo $key; ?> </br>
Item Number (Method 2): <?php echo $this->paginator->normalizeItemNumber($item); ?> </br>
<?php endforeach; ?>
Third Method through partialLoop view helper:
<?php echo $this->partialLoop('_partials/testPartial.phtml', $this->paginator); ?>
</div>
testPartial.phtml 如下:
<div>
Item Number (Method 3): <?php echo $this->partialCounter; ?> </br>
<!-- Other values can be accessed as $this->productname -->
</div>
希望这是你正在寻找的案例。
答案 1 :(得分:0)
我不确定你想要什么,但试一试
$pages = $paginator->getPages();
var_dump($pages);
echo $pages->pageCount;
getPages()
包含一些有用的信息,您可以在其中使用有关paginator对象的信息。它将输出如下内容:
object(stdClass)[201]
public 'pageCount' => int 4
public 'itemCountPerPage' => int 10
public 'first' => int 1
public 'current' => int 1
public 'last' => int 4
public 'next' => int 2
public 'pagesInRange' =>
array
1 => int 1
2 => int 2
3 => int 3
4 => int 4
public 'firstPageInRange' => int 1
public 'lastPageInRange' => int 4
public 'currentItemCount' => int 10
public 'totalItemCount' => int 33
public 'firstItemNumber' => int 1
public 'lastItemNumber' => int 10
如果在迭代对象时你可能需要在循环中做一些事情。例如,在您的视图中:
$row = 0;
foreach($this->paginator as $rowNumber => $data)
{
echo "I am row " . $rowNumber . "<br />";
}
希望有所帮助。
答案 2 :(得分:0)
如果行前面的数字与项目的ID无关,则只需在数据显示的每次迭代中递增一个计数器。
$i = 1;
echo '<ul>';
foreach ($this->paginator as $item){
echo '<li>' . $i . ' | ' . $item['name'] . ' | ' . $item['price'] . '</li>';
$i++;
}
echo '</ul>';
使用模数可以使用相同的计数器制作斑马表(交替背景颜色)。
$i = 1;
echo '<ul>';
foreach ($this->paginator as $item){
if($i % 2 == 0){
$class = 'even';
}else{
$class = 'odd';
}
echo '<li class = "' . $class . '">' . $i . ' | ' . $item['name'] . ' | ' . $item['price'] . '</li>';
$i++;
}
echo '</ul>';