【问题标题】:How do I write a better Cakephp index() controller method?如何编写更好的 Cakephp index() 控制器方法?
【发布时间】:2014-10-10 08:31:51
【问题描述】:

这个问题已经困扰我好几个月了。我有一个 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() 工作?

【问题讨论】:

标签: php cakephp pagination


【解决方案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 中得到了广泛的记录。

【讨论】:

  • 那么我把这个分页器设置代码放在哪里呢?我假设在我的用户控制器的顶部?
  • 没关系....我想通了。将它放在索引方法中,放在该函数中的任何其他代码之前。它终于奏效了!谢谢!
猜你喜欢
  • 1970-01-01
  • 2017-01-03
  • 2010-12-08
  • 2019-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-03
  • 1970-01-01
相关资源
最近更新 更多