我正在尝试一种简单的方法来使用 Propel(在 Symfony 内部)但在一个查询中从两个连接的 Mysql 表中获取数据。
假设我做这个简单的事情:
$comment = CommentPeer::RetrieveByPk(1);
print $comment->getArticle()->getTitle();
//Assuming the Article table is joined to the Comment table
Symfony 将调用 2 个查询来完成这项工作。第一个获得评论行,下一个获得链接到评论行的文章行。
现在,我正在尝试找到一种方法来在一个查询中完成所有这些操作。我试图加入他们使用
$c = new Criteria();
$c->addJoin(CommentPeer::ARTICLE_ID, ArticlePeer::ID);
$c->add(CommentPeer::ID, 1);
$comment = CommentPeer::doSelectOne($c);
但是当我尝试使用 Article 对象时
$comment->getArticle()
它仍然会发出查询以获取文章行。我可以轻松清除所有选定的列并选择我需要的列,但这不会给我我想要的 Propel 对象,只是查询原始结果的数组。
那么,如何仅通过一个查询获得两个(或更多)连接表的填充推进对象?
谢谢,
J.P