CakePHP3.x从控制器获取相关数据

CakePHP3.x从控制器获取相关数据,cakephp,cakephp-3.0,Cakephp,Cakephp 3.0,我有关系Postcategory有许多帖子,Post有一个用户。这是我的代码,它获取帖子,但我无法获取每个帖子的用户数据 $parents = $postcategories->find('all',[ 'fields'=>['Postcategories.id','Postcategories.name'], ])->contain(['Posts'=>function ($q) { return $q

我有关系Postcategory有许多帖子,Post有一个用户。这是我的代码,它获取帖子,但我无法获取每个帖子的用户数据

$parents = $postcategories->find('all',[

    'fields'=>['Postcategories.id','Postcategories.name'],

    ])->contain(['Posts'=>function ($q) {
                        return $q->select(['id', 'title','postcategory_id'])
                                ->where(['Posts.active' => 1])
                                ->order('Posts.created DESC')
                                ->limit(5)
                                ;}])
        ->where(['Postcategories.parent_id is null','Postcategories.active'=>1])
        ->hydrate(false)->toArray();

此外,我只想为每个类别的5个最新职位。这段代码只为第一个类别获取5篇文章,其余类别获取空白数组。

您可能想签出,我已经阅读了这篇文章。但是没有帮助,仍然无法获得每个帖子的用户数据。我浏览了这本书的文章。但是没有帮助,仍然无法获取每个帖子的用户数据。如果我删除函数($q)并添加=>['Users',],它会给我正确的数据,但是没有帖子和用户字段的选择。看最后一个示例,它显示了
queryBuilder
选项的使用,如果你想操作查询并为包含添加其他选项,你必须使用这个选项,通过这种方式,您也可以简单地将
用户
关联名称添加到该数组中。感谢ndm,我使用了queryBuilder,它为我提供了每个Postcategory的记录集,我得到了帖子,每个帖子我都得到了作者。现在的问题是,我需要将每个帖子类别的帖子限制在最新的5篇。