CakePHP-将一系列记录ID传递到分页 - 是可能的



由于必须从旧的非蛋糕应用程序导入数据和奇怪构建的数据库表,因此我需要通过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)

最新更新