0

有一种行为我不明白。

$test1 = $this->Post->find('all');
debug($test1);

它为该数组中的每个帖子提供了预期的帖子数组,其中包含模型的所有字段:

id, field 1, field 2, field 3 ...

如果我使用以下语法:

$test2 = $this->paginate('Post');
debug($test2);

它仅显示预期的帖子数组,其中包含该数组中每个帖子的模型的某些特定字段:

id, field 2, field 5, field 14

为什么使用时会出现此输出paginate()-method?我如何为paginate()-method类似的东西获得相同的输出find()-method

如果需要任何进一步的代码,请告诉我。

任何帮助表示赞赏。

更新 1:

我发现我在这里加载的 DataTable-Component:https ://github.com/cnizzdotcom/cakephp-datatable可能会对这种奇怪的行为产生影响。但是我还没发现怎么...

4

1 回答 1

0

我得到了解决方案。就像我认为问题出在 DataTable-Component 一样。在控制器中有多个 paginate() 调用,最后一个带有特定字段分配的调用保存在“$this->paginate”变量中。因此,当我在不设置字段的情况下运行 Cakes 正常分页时,会使用该变量,并且显然只设置我使用 DataTable 提供的字段。所以解决方案是设置

$this->paginate = array(
'fields' => array('Post.*')
);

在任何 paginate() 调用之前。感谢 Scrappy Coco 用星号给出提示。

于 2013-07-22T20:02:08.013 回答