如何编写更好的Cakephp index()控制器方法?

时间:2014-08-17 03:50:57

标签: php cakephp paginate

这个问题几个月来一直困扰着我。我有一个CakePhp应用程序,我蛋糕烘焙,以获得基本的CRUD功能。所以烘焙的Index方法就是这个....

public function index() {
    $this->User->recursive = 0;
    $this->set('users', $this->Paginator->paginate());
}

问题在于您无法对结果进行排序。我想要的是能够对结果进行排序,以便按升序显示我的所有用户名。

我能够像这样编写自己的QUERY .....

public function index() {
            $this->set('users',$this->User->query("SELECT * FROM users ORDER BY  name ASC"), $this->Paginator->paginate());

}

这样我的结果就可以正常 但问题是它根本不会分页。 我把所有58个结果都放在一页上。

任何人都可以帮我写这个,这样我可以订购和限制我的结果并仍然有Paginate()工作吗?

1 个答案:

答案 0 :(得分:1)

Paginator几乎只是find()方法的包装器。它允许您使用与查找相同的选项,因此您只需在Paginator设置中设置order键,如下所示:

$this->Paginator->settings = array(
    'order' => array('name' => 'asc')
);
// Now you can paginate() with order...
$this->Paginator->paginate();

在CakePHP的pagination documentation {<3}}中,这些都被广泛记录。