首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CakePHP -将记录it数组传递到分页-这是可能的吗?

问CakePHP -将记录it数组传递到分页-这是可能的吗?
EN

Stack Overflow用户
提问于 2012-11-09 23:09:39
回答 1查看 187关注 0票数 0

由于必须从旧的非蛋糕应用程序和奇怪构建的数据库表中导入数据,我需要对允许显示的记录数组进行分页-这可能吗?

通常,我会将数据重新组织成适当的关系等,但由于时间尺度等原因,这是不可能的。

为了给您提供更多信息-在我的用户表中,我有一个字段,其中包含与他们被允许查看的文档相关的ID列表。该字段将包含如下内容

代码语言:javascript
复制
123,23,45,56,765,122,11.9,71,25

每个ID都指向文档模型中的一个文档。我知道通常您会创建适当的ACOs和AROs,并让ACL/Auth组件处理哪些用户可以访问哪些内容,但这不是一个选项。所以我想,如果我可以通过paginate/find来做这件事,可能会是一个选择?

任何帮助都将不胜感激。

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-09 23:42:58

您不会将in列表传递给它,而是在分页条件中使用in如下所示。

(代码写在我的头上,所以请原谅任何语法errors...etc。它至少应该给你一个正确的想法/路径):

代码语言:javascript
复制
//Controller
$this->loadModel('User');
$this->loadModel('Document');

$user = $this->User->findById($userId);

$documentIds = explode(',', $user['User']['doc_ids']);

$this->paginate = array(
    'conditions' => array(
        'id' => $documentIds
    )
));
$documents = $this->paginate('Document');

当您将数组作为条件传递时(例如,'id'=>$arrayOfIds),它使用MySQL "IN“-类似于:

代码语言:javascript
复制
... WHERE id IN (45, 92, 173)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13310589

复制
相关文章

相似问题

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