Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP 3如何限制每个项目中包含的项目数量,而不是全局限制_Php_Mysql_Cakephp - Fatal编程技术网

CakePHP 3如何限制每个项目中包含的项目数量,而不是全局限制

CakePHP 3如何限制每个项目中包含的项目数量,而不是全局限制,php,mysql,cakephp,Php,Mysql,Cakephp,我有与类别相关的文章。我想得到每个类别最多两篇文章。存在多对一连接。因此,我使用以下方法 $query = $categories->find()->contain([ 'Articles' => [ 'queryBuilder' => function ($q) { return $q->limit(2); } ] ]); 不幸的是,限制2个接缝是全局的。我从第一个类别中得到2篇文章,然后

我有与类别相关的文章。我想得到每个类别最多两篇文章。存在多对一连接。因此,我使用以下方法

$query = $categories->find()->contain([
    'Articles' => [
        'queryBuilder' => function ($q) {
            return $q->limit(2); 
        }
    ]
]);
不幸的是,限制2个接缝是全局的。我从第一个类别中得到2篇文章,然后没有与其他类别相关的文章

如何设置每个项目的限制而不是全局限制。

请尝试

我自己还没有用过这个,所以不确定它是否进入文章或作者表。我猜它会出现在AuthorsTable中

public function findLimtedAuthors(Query $query, $options) {
    return $query->limit(2);
}
试试看

我自己还没有用过这个,所以不确定它是否进入文章或作者表。我猜它会出现在AuthorsTable中

public function findLimtedAuthors(Query $query, $options) {
    return $query->limit(2);
}

它在3.1中不起作用。我编辑了一点我的问题-现在可以很清楚了,限制仍然是全局的(就像在我的例子中一样)。它在3.1中不起作用。我编辑了一点我的问题-现在它可以很清楚的限制仍然是全球性的(就像在我的例子中)。