【问题标题】:Recursive Pagination in CakePHP Not WorkingCakePHP 中的递归分页不起作用
【发布时间】:2011-01-25 10:55:05
【问题描述】:

如果此问题已在其他地方提出并回答,但我已查看但未能找到,我深表歉意。

我有三个模型: ManagerHABTM Tenant

我还有一个ManagersTenant 模型将两者联系在一起。

我正在尝试使用分页在ManagersTenant 控制器中递归地显示来自ManagerTenant 的字段。这是我的代码:

$this->ManagersTenant->recursive = 2;

$this->set('managersTenants', $this->paginate('ManagersTenant',array(),array('recursive'=>2)));

这仅显示ManagersTenantidtenant_idmanager_id)中的字段,但不会从关联的ManagerTenant 模型中检索数据。

我也在做一个debug($this->ManagersTenant->find('all'));,它完美地执行递归并显示正确的数组。

我做错了什么?我需要对我的模型做一些特别的事情吗?

非常感谢任何帮助。

//编辑:

我要做的是显示所有匹配项,其中Tenant_idManager_id 与登录用户的ID 匹配。例如,如果登录的ManagerTenant 模型上执行index 函数,我希望为Tenant_id 显示所有Tenants,其中Manager_id(在ManagersTenant 模型中) == $this->Auth->User('id')。我的印象是,为了做到这一点,我必须使用 HABTM 表。但是如果我可以在没有加入表的情况下做ManagerHABTM Tenant,我完全愿意尝试。

【问题讨论】:

    标签: cakephp recursion pagination cakephp-1.3


    【解决方案1】:

    您可能不需要定义 ManagersTenant 模型。您应该在 Manager 和 Tenant 模型中定义 HABTM,并将这些模型用于您的查询。

    如果您确实需要 ManagersTenant 模型,您应该使用join model 关系:

    • Manager hasMany ManagersTenant
    • Tenant hasMany ManagersTenant
    • ManagersTenant 属于经理和租户。

    【讨论】:

    • 我认为我必须有一个 ManagersTenant 模型来处理 Manager HABTM Tenant 关系。我肯定会在应用程序的其他部分需要连接模型,但我希望递归能够简单地从关联模型中提取数据。当我执行 find() 时它似乎有效,那么为什么不使用分页呢?
    • 我尝试了使用 Tenant 模型而不是 ManagersTenant 模型的建议,并且递归似乎有效。现在唯一的问题是containable 似乎不起作用。
    • containable 应该适用于 HABTM,查看示例:book.cakephp.org/view/1323/Containable
    猜你喜欢
    • 2011-09-27
    • 2018-04-30
    • 2013-03-02
    • 2013-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    • 2012-06-27
    相关资源
    最近更新 更多