首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CakePHP 2.x containable +嵌套模型的分页

CakePHP 2.x containable +嵌套模型的分页
EN

Stack Overflow用户
提问于 2014-04-15 14:51:50
回答 2查看 2.7K关注 0票数 2

我在使用Cake中的containable时遇到了嵌套模型分页的问题...

我有三个模型: Category,CompanyCategory,Company,它们的关联是这样的

代码语言:javascript
复制
Category hasMany CompanyCategory
CompanyCategory belongsTo Category 
CompanyCategory belongsTo Company
Company hasMany CompanyCategory

我使用contain获取数据,如下所示:

代码语言:javascript
复制
$options = [
  'conditions' => ['Category.slug' => $slug],
  'contain' => [
    'CompanyCategory.Company.CompanyAddress'
  ]
];
return $this->find('first', $options);

一切工作正常,直到我想对嵌套的模型- Company进行分页。我使用带有CategoriesController方法的show方法,该方法呈现具有所选类别和相关公司(公司hasMany类别和类别hasMany公司)的视图。

我尝试过这样的东西:

代码语言:javascript
复制
$this->Paginator->settings = [
  'limit' => 1,
  'order' => [
    'id' => 'asc'
  ],
  'contain' => array('CompanyCategory.Company')
];
$data = $this->Paginator->paginate('Category.CompanyCategory.Company', array('Category.slug LIKE' => $slug));
$this->set('category', $data);

但这对我不起作用:(

有什么建议/帮助吗?

EN

回答 2

Stack Overflow用户

发布于 2014-04-15 15:56:19

如果你定义Category有一个hasAndBelongsToMany关系,这对你来说会很容易。因此,您创建了一个名为CompanyCategory的新模型,我认为这是有原因的。

你可以试试这个-

代码语言:javascript
复制
$this->Category->bindModel(
    array(
        'hasAndBelongsToMany' => array(
            'Company'
        )
    )
);
$this->Paginator->settings = array(
    'conditions' => array(
        'Category.slug' => $slug
    ),
    'limit' => 1,
    'order' => array(
        'id' => 'asc'
    ),
    'contain' => array(
            'Company'
    )
);

我假设您的关系表名称为categorys_companies...如果不是,那么您需要采取不同的方法

票数 1
EN

Stack Overflow用户

发布于 2014-04-16 04:01:23

最后我解决了我的问题

代码语言:javascript
复制
$this->Paginator->settings = array(
  'limit' => 2,

);

$this->Paginator->paginate('Category.CompanyCategory.Company');

我忘了写我使用的是CategoriesController的方法,而不是公司的方法。

但是现在另一个问题阻碍了我..。我使用TranslateBehaviour,我得到的数据没有翻译...

有什么想法吗?我在谷歌上搜索了很多,但没有找到任何满意的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23076489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档