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

如何编写更好的Cakephp index()控制器方法?,php,cakephp,paginate,Php,Cakephp,Paginate,这个问题困扰了我好几个月了。我有一个CakePhp应用程序,我烘焙它来获得基本的CRUD函数。所以烘焙索引方法是 public function index() { $this->User->recursive = 0; $this->set('users', $this->Paginator->paginate()); } 问题是你没有办法对结果进行排序。我想要的是能够对结果进行排序,以便它以升序显示我的所有用户名 我已经能够像这样编写我自己的查

这个问题困扰了我好几个月了。我有一个CakePhp应用程序,我烘焙它来获得基本的CRUD函数。所以烘焙索引方法是

public function index() {
    $this->User->recursive = 0;
    $this->set('users', $this->Paginator->paginate());
}
问题是你没有办法对结果进行排序。我想要的是能够对结果进行排序,以便它以升序显示我的所有用户名

我已经能够像这样编写我自己的查询

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

}
这将使我的结果很好。
但问题是它根本不会分页。 我把58个结果都写在一页纸上


有谁能帮我写这篇文章,这样我就可以对结果进行排序和限制,并且仍然可以使用Paginate()方法?

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

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

所有这些都在CakePHP中有大量的文档记录。

注意:这可能与另一个类似。说真的,请阅读博客教程并阅读这本书:&那么我应该将分页器设置代码放在哪里?我想在我的用户控制器的顶端?没关系…我想出来了。将其置于该函数中任何其他代码之前的Index方法中。终于成功了!谢谢