我正在 cakephp2.x 工作大约1。5年,这是好的,现在我把我的自己移到Cakephp 3.x但我面临着获取多层次关联数据的问题,请告诉我我正在写作方式。 现在我的问题是!! 在cakephp 2.x中:我在控制器中使用了多级关联,如此
在 CommentsController 中: 型号:发表 型号:的注释
帖子 hasMany 评论(我在模型中定义的关系) 评论属于至帖子
$this->Post->Comment->find('all');
此查询也返回评论以及相关帖子,但现在在cakephp 3.x中
$this->Posts->Comments->find();
它只返回了评论但没有相关帖子,但是当我使用像这样的可包含行为时
$this->Post->Comments->find('all',['contain'=>['Posts'] ] )
这次显示错误帖子与评论无关 现在我想知道我错了吗?
答案 0 :(得分:1)
Cake 3中的表(模型)是复数。听起来你正在寻找这样的事情:
$this->Posts->find()->contain(['Comments']);
// or
$this->Posts->find('all', ['contain' => ['Comments']]);
如果仍然出现错误,请确保已设置关联。
// src/Model/Table/PostsTable.php
public function initialize(array $config)
{
parent::initialize($config);
$this->hasMany('Comments');
}
答案 1 :(得分:0)
试试这个,我认为这会有帮助
$this->Posts->find('all')->contain(['Comments']);
答案 2 :(得分:0)
尝试 cakephp 3.x
$this->Posts->Comments->find()->contain(['Posts'])->all();
OR
$this->Posts->Comments->find()->contain(['Posts'])->toArray();
在尝试之前,请确保您的模型关系hasMany且belongsTo必须正确。