Zend framework 我想显示行数:paginator zend framework

Zend framework 我想显示行数:paginator zend framework,zend-framework,Zend Framework,我想显示行数:paginator zend framework 示例: number productname price 1. pen 25.00 2. Pencil 10.00 3. Booklet 12.00 我想在示例中显示行数(行数)。(从paginator获取ok)我不确定您到底想要什么,但请尝试一下 $pages = $paginator->getPages(); var

我想显示行数:paginator zend framework

示例:

number   productname     price
1.       pen             25.00
2.       Pencil          10.00
3.       Booklet         12.00

我想在示例中显示行数(行数)。(从paginator获取ok)

我不确定您到底想要什么,但请尝试一下

$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 />";
}
$row=0;
foreach($this->paginator作为$rowNumber=>$data)
{
回显“我是行”。$rowNumber。“
”; }

希望这会有所帮助。

如果行前面的数字与项目的id无关,您只需在数据显示的每次迭代中增加一个计数器即可

$i = 1;
echo '<ul>';
foreach ($this->paginator as $item){
    echo '<li>' . $i . ' | ' . $item['name'] . ' | ' . $item['price'] . '</li>';
    $i++;
}
echo '</ul>';
$i=1;
回声“
    ”; foreach($this->paginator作为$item){ 回显“
  • ”.$i.。$item['name'].|“.$item['price'.
  • ”; $i++; } 回声“
”;
同样的计数器也可以使用模来制作斑马表(交替背景色)

$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>';
$i=1;
回声“
    ”; foreach($this->paginator作为$item){ 如果($i%2==0){ $class=‘偶数’; }否则{ $class='奇数'; } echo“
  • ”.$i.|“.$item['name'].|“.$item['price'].
  • ”; $i++; } 回声“
”;
目前,我可以想出三种方法,您可以从/使用paginator获取当前项目编号:

  • 使用foreach的$key=>$item。在这种情况下,$key应该是您的项目编号
  • 使用Zend_Paginator的归一化项数方法
  • 使用partialView辅助程序
以下示例说明了所有三种方法:

测试操作

 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>

项目编号(方法1):
项目编号(方法2):
通过partialLoop视图帮助器的第三种方法:
其中testPartial.phtml如下所示:

<div>
    Item Number (Method 3): <?php echo $this->partialCounter; ?> </br>
    <!-- Other values can be accessed as $this->productname -->
</div>

项目编号(方法3):

希望这就是你在寻找的情况。

也许是我,但我不确定你想做什么。你能提供更多的上下文和解释吗?请不要重复发帖;副本将被删除。非常感谢您的回答