进行bepalyToMany CakePHP 3分页的条件

路易斯

我有表格Semesters,Disciplines和jointTable Semesters_Disciplines。我想在DisciplinesController中创建一个动作索引,并以semester_id作为参数,该列表以分页形式列出了属于该学期的学科,并在参数中传递了ID。我尝试了这个:

public function index($semester_id)
{
    $options = ['semester_id' => $semester_id];
    $this->paginate = ['conditions' => $options];

    $this->set('disciplines', $this->paginate($this->Disciplines));
    $this->set('_serialize', ['disciplines']);
}
ndm

您必须使用使用匹配或联接的查询才能对非1:1/n-1关联进行过滤

您可以通过将查询直接传递给paginate()方法来实现

// ...
$this->set('disciplines', $this->paginate(
    $this->Disciplines
        ->find()
        ->matching('Semesters', function(\Cake\ORM\Query $q) use ($semester_id) {
            return $q->where([
                'Semesters.id' => $semester_id
            ]);
        })
        ->group(['Disciplines.id'])
));
// ...

或使用自定义查找器。

// ...
$this->paginate = [
    'finder' => [
        'semesters' => [
            'semester_id' => $semester_id
        ]
    ]
];
$this->set('disciplines', $this->paginate($this->Disciplines));
// ...
// DisciplinesTable
public function findSemesters(\Cake\ORM\Query $query, array $options)
{
    $query
        ->matching('Semesters', function(\Cake\ORM\Query $q) use ($options) {
            return $q->where([
                'Semesters.id' => $options['semester_id']
            ]);
        })
        ->group(['Disciplines.id']);
    return $query;
}

也可以看看

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用CakePHP进行AJAX分页

来自分类Dev

在CakePHP 3分页中删除不必要的联接

来自分类Dev

cakephp代码使用Cakephp 1.3进行数据分页

来自分类Dev

CakePHP 3 对联合查询的结果进行分页

来自分类Dev

与cakephp中的join和数组进行分页

来自分类Dev

为什么CakePHP 3分页器不向自定义查找器方法发送选项?

来自分类Dev

在模型中使用OR条件进行CakePHP验证

来自分类Dev

CakePHP分页

来自分类Dev

在检索带有条件的数据cakephp时进行分页

来自分类Dev

当结果来自多个连接条件时,如何在cakephp中进行分页

来自分类Dev

在检索带有条件的数据cakephp时进行分页

来自分类Dev

在CakePHP3中为分页添加条件

来自分类Dev

在 CakePHP 3 中使用动态 AJAX 加载对关联查询进行分页和搜索

来自分类Dev

用高级过滤器对cakephp进行分页

来自分类Dev

在CakePhp中进行分页之前修改数据

来自分类Dev

Cakephp 3查询或条件

来自分类Dev

使用Cakephp 3.x进行LDAP身份验证

来自分类Dev

在cakephp 3中使用concat字段进行搜索

来自分类Dev

在cakephp 3中按嵌套关联对查询结果进行排序

来自分类Dev

使用CakePHP 3进行i18n翻译

来自分类Dev

CakePHP 2.4.4无法通过带有分页的虚拟字段(分页器)进行排序/排序

来自分类Dev

cakephp分页顺序被忽略

来自分类Dev

REST API CakePHP分页

来自分类Dev

CakePHP分页动作

来自分类Dev

关联模型的cakephp分页

来自分类Dev

CakePHP分页SQL注入

来自分类Dev

CakePhp AngularJs 分页

来自分类Dev

Cakephp 3.6 分页器

来自分类Dev

分页在Cakephp 3.x中排序