簡體   English   中英

Propel populateRelation一對多關系不會填充關系

[英]Propel populateRelation one-to-many relation doesn't fill relation

我有一個問題, populateRelation ,讓我們解釋一下,我們有一些文章,這篇文章可以有標簽,所以我們做另一個表article_tag,這個做ArticleTag對象的推進,讓我們找到所有的文章

$Articles = ArticleQuery::create()->find();

所以我們現在有了所有文章,現在我們想要為每篇文章提供所有這些標簽,所以我們在這里:

$Articles->populateRelation('ArticleTag');

然后是我們做的一些觀點:

foreach($Articles as $Article) {
  // some stuff
  foreach($Article->getArticleTags() as $ArticleTag) { // this should not do query!
    // some additional stuff
  }
}

當我在db中有1 200篇文章時,使用populateRelation查詢最多為600,但對於文章和文章標簽應該只有2。

我哪里弄錯了?

在這里給出一個關於遞歸填充相關對象的答案

您只需要在查詢中顯式joinWith

$articles = ArticleQuery::create()->joinWith('Article.ArticleTag')->find();

// this won't perform others queries
// not sure about getArticleTags or getArticleTag
foreach($articles->getArticleTags() as $ArticleTag) { }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM