【问题标题】:CakePHP custom paginatorCakePHP 自定义分页器
【发布时间】:2017-04-21 00:04:00
【问题描述】:

我做了一个分页器,但问题是当只有一页时它会在底部显示页码。所以我尝试添加 if~else 但我无法让它工作。 “错误:超过最大执行时间 120 秒”

之前

<div class="pagination">
    <?php for($x = 1; $x <= $pages; $x++): ?>
        <a href="?page=<?php echo $x; ?>"<?php if($page === $x) { echo ' class="selected" '; } ?>><?php echo $x ?></a>
    <?php endfor; ?>
</div>

之后

<div class="pagination">
    <?php 
       if($pages > 1){
           for($x = 1; $x <= $pages; $x++): 
              if($x = 1)
              { 
              ?>
               <a href="?page=<?php echo $x; ?>"<?php if($page === $x) { echo ' class="selected" '; } ?>><?php echo $x ?></a>
              <?php
              } else {
                echo '';
              }
           endfor;
        }
    ?>
</div>

【问题讨论】:

    标签: php cakephp cakephp-2.0


    【解决方案1】:

    假设$pages 是您拥有的页面总数,您需要将自定义分页包装在if 语句中,以在显示分页之前检查您有超过1 个页面。

    <?php if ($pages > 1): ?>
        <div class="pagination">
            <?php for ($x = 1; $x <= $pages; $x++): ?>
                <a href="?page=<?php echo $x; ?>"<?php if($page === $x) { echo ' class="selected" '; } ?>><?php echo $x ?></a>
            <?php endfor; ?>
        </div>
    <?php endif; ?>
    

    您的代码正在中断,因为您在 for 循环中执行 if 语句,并且每次都将 $x 的值设置为 1(您使用的是 = 而不是 ==) .这会让你陷入无限循环。

    如果您使用的是 CakePHP,您是否有理由不使用它的内置 PaginationPaginatorHelper 应该为您提供显示分页所需的所有方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-16
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      • 2010-12-23
      • 2011-06-29
      • 1970-01-01
      相关资源
      最近更新 更多