1

populateRelationに問題があります。説明しましょう。いくつかの記事があり、この記事にはタグを付けることができるので、別のテーブル article_tag を実行します。これは、propel で 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つだけにする必要があります。

どこで間違えますか?

4

1 に答える 1

3

関連オブジェクトを再帰的に入力することについて、ここに回答を置きます。

クエリでテーブルを明示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) { }
于 2012-05-31T11:52:28.487 に答える