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

Cakephp-从另一个模型分页数据,cakephp,find,Cakephp,Find,我试图从住宿控制器进行分页,但使用MemberWall模型的数据 这是密码 Accommodation $data = $this->Accommodation->Member->MemberWall->paginate('MemberWall'); MemberWall var $paginate = array( 'limit' => 4, 'order' => array( 'MemberWall.created' => 'asc'

我试图从住宿控制器进行分页,但使用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 
谢谢,亚历克斯

$this->paginate('MemberWall');iirc就是它的工作方式

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

  • $this->住宿->会员->会员墙->分页('MemberWall')正在调用MemberWall模型上的方法。paginate()是一种控制器方法

  • 阅读,尤其是最后一节

  • 我不确定您是否可以对关系进行如此深入的分页,这向我表明您可能需要重新考虑您的数据模型和逻辑

  • 在这个主题上写的更好


  • 这是真正的答案

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

    我在文件里也找不到这个。实际上,您可以将模型对象传递到paginate方法中。

    我已经尝试过了,它可以通过两种方式工作:

    $this->paginate('MemberWall')

    $this->paginate($this->住宿->会员->会员墙)

    在我的代码中,我使用了如下内容:

    $this->loadModel('MemberWall')

    $this->paginate=array(…)


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

    我收到此错误,Controller::paginate()-在Controller中找不到模型MemberWall控制器[CORE/cake/libs/controller/controller.phpI发现解决这一问题的最佳方法是使用js分页。感谢您的帮助!这一切都很好,但为什么要在模型已加载时加载它呢?最好链接到已加载的模型,而不是第二次加载它。这就是问题所在,模型尚未加载或分页可能会失败与之关联。这是更详细的解决方案。尤其是如果您要更改
    paginate
    选项+1@ChuckBurgess-不是真的…模型已经可以访问,OPs代码不工作的原因是因为paginate是控制器方法,而不是模型方法。