Cakephp - 从另一个模型中分页数据

时间:2011-02-03 16:09:13

标签: cakephp find

我正在尝试从住宿控制器进行分页,但是使用来自MemberWall模型的数据。

这是代码

Accommodation

$data = $this->Accommodation->Member->MemberWall->paginate('MemberWall');

MemberWall

var $paginate = array(
 'limit' => 4,
 'order' => array(
   'MemberWall.created' => 'asc'
 )
); 

我收到此错误

SQL Error: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use nea....   Query: paginate 

谢谢,Alex

4 个答案:

答案 0 :(得分:17)

这是真正的答案。

$data = $this->paginate($this->Accommodation->Member->MemberWall);

我也很难在文档中找到这个。您实际上可以将模型对象传递给paginate方法。

答案 1 :(得分:8)

我已经尝试过并且它在两个方面都有效:

$this->paginate('MemberWall');

$this->paginate($this->Accommodation->Member->MemberWall);

在我的代码中,我使用类似的东西;

$this->loadModel('MemberWall');

$this->paginate = array(.....);

$data = $this->paginate('MemberWall');

答案 2 :(得分:0)

$这 - >分页( 'MemberWall'); iirc是它的工作方式

答案 3 :(得分:-2)

  1. MemberWall $ paginate数组(您的第二个代码段)看起来像是在member_walls_controller.php中定义的。从accommodation_controller.php无法访问它

  2. $this->Accommodation->Member->MemberWall->paginate('MemberWall');正在调用MemberWall 模型上的方法。 paginate()是一种控制器方法。

  3. 阅读Custom-Query-Pagination,特别是最后一部分。

  4. 我不确定你是否可以在关系中分页,它告诉我你可能需要重新考虑你的数据模型和逻辑。

  5. 1.2 manual最好写在这个主题上。