【问题标题】:Paginate from model method data in CakePHP从 CakePHP 中的模型方法数据分页
【发布时间】: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


【解决方案1】:

朋友,您正在尝试将分页应用到“数组”而不是模型上。 Cakephp 为模型实例提供分页数据的功能。由于模型数据事务方法具有数据库连接对象和分页组件管理该对象。

【讨论】:

    猜你喜欢
    • 2013-08-21
    • 2016-04-21
    • 2011-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 2016-09-28
    相关资源
    最近更新 更多