【发布时间】:2013-10-27 21:49:47
【问题描述】:
我从 CakePHP 框架开始。我想在我的网站上使用分页器,但我想做模型中的所有操作。
当我在控制器中使用 all 时就可以了:
public function index() {
$this->Paginator->settings = $this->paginate;
$data = $this->Paginator->paginate('MyModel');
$this->set('data', $data);
}
但是当我想使用模型中的方法时,列有问题:MyModel:
public function index() {
$this->Paginator->settings = $this->paginate;
$data = $this->Paginator->paginate($this->MyModel->getData());
$this->set('data', $data);
}
//模型方法
public function getData()
{
$data = $this->find('all');
return $data;
}
当我在没有分页的情况下显示此方法时,就可以了:
public function index() {
$data = $this->MyModel->getData();
$this->set('data', $data);
}
【问题讨论】:
-
$this->Paginator->paginate($this->MyModel->getData());您是从哪里想到可以使返回的数据可分页的?如文档所述, paginate() 方法需要一个字符串(准确的模型名称)。 -
好的,但是如何使用我自己的模型和分页功能?我不想从控制器中的数据库获取数据。我认为这是个坏主意。 DB上的所有操作都应该在模型中。
-
你误解了这个概念。在通过 paginate() 调用获取数据之前,数据始终位于控制器之外。因此它没有区别。坚持第一种方式 - 这显然有效。有更大的鱼要炸:)
-
OK :) 当我创建一个带分页的简单搜索引擎时,我必须在没有模型方法的情况下创建它?
标签: php cakephp cakephp-2.0