由于必须从旧的非蛋糕应用程序导入数据和奇怪构建的数据库表,因此我需要通过paginate允许显示的记录数组 - 这是否可能吗?<<<</p>
通常,我会将数据重组为正确的关系等,但由于时间尺度等,这是不可能的。
要为您提供更多信息 - 在我的用户表中,我有一个字段,其中包含ID列表,该列表与允许查看的文档有关。该字段将包含
之类的东西123,23,45,56,765,122,11.9,71,25
每个ID指文档模型。我知道通常您会创建适当的ACOS和AROS,并让ACL/AUTH组成剂处理用户可以访问它,但这不是这次的选择。所以我想如果我可以通过台球/找到它可能是一种选择?
任何帮助都将不胜感激。
预先感谢
您不会将其传递给ID列表,您将在分页条件下使用ID-类似于下面的内容。
(代码从我的头顶上注销,所以请原谅任何语法错误...等。它至少应该给您正确的想法/路径):
//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
)传递时,它使用mysqls" in" - 类似:
... WHERE id IN (45, 92, 173)