0
我想要做什麼:CakePHP的3查詢與多個連接ORM
- 加入多個表。
- 閱讀數據。
- 如果可能,請創建具有多個維度的數據數組。
我有這樣一個數據庫: 表的文章,標籤,用戶,類別
JOIN:
- 文章需要與標籤內連接。 (多對多關係)
- 標記與用戶的內部聯接。 (多對一關係)
- 標籤內部加入類別。 (多對一關係)
我的查詢到目前爲止:
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()完成了)。
foreach($query as $article) {
debug($article->articlename); // works fine
foreach($article as $tag) {
debug($tag->tagname); // no output, no error
// other foreach loops or something...
}
}
我想我在這裏犯了一個愚蠢的錯誤。
你能給我一個建議,以創建這些值的數組?我以爲我讀了CakePHP中的一些數組方法。
編輯:(找到了解決辦法) 我沒有正確讀出的數據:
foreach($query as $article) {
debug($article->articlenamename);
debug($article->_matchingData["Tags"]["tagname"]);
}
是否可以定義'articles'和'Tags','Users'&'Categories'之間的關係? – BCoder
Jup,當我使用'正常'查詢時,它的工作原理是正確的。 – xDs
使用包含innerjoinwith獲取相關數據http://book.cakephp.org/3.0/en/orm/retrieving-data-and-resultsets.html#passing-conditions-to-contain –