【问题标题】:how to change PaginatorHelper direction如何更改 PaginatorHelper 方向
【发布时间】:2013-12-13 09:46:07
【问题描述】:

如何改变 PaginatorHelper 的方向?它生成的链接排序asc,我想更改为desc。 我在我的 .ctp 文件中编写了该代码,但没有更改..:

<?php $this->Paginator->options(array('direction' => 'desc')) ?>

如何改变方向?我可以在控制器中更改它吗?或者我应该改变看法? 我的助手:

public $helpers = array ('Html', 'Form', 'Paginator');

谢谢。

【问题讨论】:

    标签: cakephp pagination


    【解决方案1】:

    为分页设置默认值是documentation 中的轮廓。您还可以将参数传递给控制器​​中的 paginate() 调用:

    $this->paginate = array(
        'conditions' => array('Recipe.title LIKE' => 'a%'),
        'limit' => 10,
        'order' => 'Recipe.created'
    );
    

    【讨论】:

    • 谢谢,但我认为您的代码将默认顺序设置为Recipe.created,升序。如何将默认排序更改为降序?
    • @Dunhamzzz 您的解决方案没有按照 OP 的要求将生成的分页链接设置为 DESC,它仅对分页返回的数据进行预排序。如果您要单击分页链接,它仍会默认方向为 ASC。傲慢的 cmets 只描绘自我,不提供解决方案。 1)手册不清楚如何设置默认排序方向,2)不要假设因为有人不知道你没有阅读手册,3)至少尝试理解叫人出来之前的问题。
    【解决方案2】:

    我知道这是一个迟到的回复,但我想回答这个问题,以防有人来这里寻找正确的答案,因为没有正确的答案。

    要更改分页器中direction 的默认分页,有两种方法可以实现这一点。

    帮手

    如果你使用的是 PaginatorHelper,你可以在视图中创建链接时设置默认值:

    echo $this->Paginator->sort('Link Name', 'Model.columnName', array('direction' => 'desc')) ;
    

    这将打印链接,该链接将根据您在选项数组中标识的方向对列进行排序,如上所示。如果省略了 options 数组,它将默认为 'asc'。

    组件

    如果你想在 PaginatorComponent 上设置默认方向,你可以这样做:

    $this->Paginator->settings = array(
        'direction' => 'desc',
        'sort' => 'Model.column',
    );
    

    请记住,这有两件事。它将按照排序选项中标识的 Model.column 自动对您的数据进行排序,并按照指定的方向进行排序。

    注意:您不能简单地添加方向。它需要设置 BOTH 才能工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-15
      • 1970-01-01
      • 1970-01-01
      • 2012-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-30
      相关资源
      最近更新 更多