2012-02-03 38 views
1

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

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

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

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

谢谢。

回答

1

设置分页的默认值是documentation中的轮廓。您也可以通过PARAMS到paginate()呼叫控制器:

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

谢谢,但我认为你的代码默认顺序为'Recipe.created',升序。如何将默认排序更改为降序? – mrdaliri 2012-02-05 21:13:15

+0

'Recipe.created DESC',为了上帝的缘故,请阅读手册。 – Dunhamzzz 2012-02-05 23:16:50

+0

@Dunhamzzz您的解决方案不会将生成的分页链接设置为DES,因为OP正在询问它,它只是对分页返回的数据进行预先排序。如果你点击一个分页链接,它会默认ASC的方向。傲慢的评论只描绘自我,它不提供解决方案。 1)手册不清楚如何设置默认的排序方向,2)不要认为是因为某人不知道你做了什么,他们没有阅读手册,3)至少试图理解把某人叫出来之前的问题。 – 2013-12-13 02:16:28

0

我知道这是一个迟到的反应,但我想回答的情况下,一个人的问题,来这里寻找正确的答案,一直没有答案是正确的。

若要更改分页程序中分页direction的默认值,有两种方法可以实现此目的。

助手

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

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

这将打印,将列进行排序的链接根据您在选项数组中确定的方向,如上所述。如果选项数组被忽略,它将默认为'asc'。

组件

如果你想设置的PaginatorComponent默认的方向,你这样做是这样的:

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

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

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