Sql 具有多个连接的CAKEPHP3查询ORM
我想做的是:Sql 具有多个连接的CAKEPHP3查询ORM,sql,cakephp,cakephp-3.0,Sql,Cakephp,Cakephp 3.0,我想做的是: 连接多个表 读取数据 若可能,创建具有多个维度的数据数组 我有这样一个数据库: 表项目、标记、用户、类别 加入: 文章需要一个带有标记的内部联接。(多对多关系) 标记内部连接用户。(多对一关系) 标记与类别连接。(多对一关系) 到目前为止,我的问题是: private function findAllArticleRelatedStuff() { $query = $articles->find(); $query->innerJoinWith('Tags',
- 连接多个表李>
- 读取数据李>
- 若可能,创建具有多个维度的数据数组
- 文章需要一个带有标记的内部联接。(多对多关系)
- 标记内部连接用户。(多对一关系)
- 标记与类别连接。(多对一关系)
private function findAllArticleRelatedStuff() {
$query = $articles->find();
$query->innerJoinWith('Tags', function ($q) {
$q->innerJoinWith('Users');
$q->innerJoinWith('Categories');
return $q;
});
$query->select(['Articles.articlename', 'Tags.tagname', 'Users.username', 'Categories.categoriename']);
return $query;
}
我想选择articlesname、tagsname、usersname、categoriesname,然后首先打印它(在视图中,“我已经通过set()完成了这项工作”)
我想我犯了一个愚蠢的错误
你能给我一个创建这些值数组的建议吗?我想我读过CakePHP中的一些数组方法
编辑:(找到解决方案)
我没有正确读出数据:
foreach($query as $article) {
debug($article->articlenamename);
debug($article->_matchingData["Tags"]["tagname"]);
}
尝试调试($article->tag->tagname) 是否可以定义
文章
和标签
,用户
和类别
之间的关系?Jup,当我使用“正常”查询时,它工作正常。使用contain和innerjoinwith获取关联数据检查编辑,我刚刚找到了解决方案。注意(8):尝试获取非对象的属性
foreach($query as $article) {
debug($article->articlenamename);
debug($article->_matchingData["Tags"]["tagname"]);
}