0

你好,

我尝试翻译这个查询:

SELECT *
FROM `reunion` , lieu
WHERE reunion.lieu_reunion = lieu.id_lieu

推动查询:

$c=new Criteria();
$c->addJoin(ReunionPeer::LIEU_REUNION,LieuPeer::ID_LIEU, Criteria::LEFT_JOIN);
$this->reunions = ReunionPeer::doSelect($c);

但是在我的模板中,当我创建 print_r($reunions) 时,字段“ville”(来自表“lieu”)不存在。

为什么 ??

4

2 回答 2

1

首先,您的推进查询将转换为:

SELECT * FROM `reunion` LEFT JOIN lieu ON (reunion.lieu_reunion = lieu.id_lieu);

然后我可以建议这个:

$c=new Criteria();
$c->clearSelectColumns();
ReunionPeer::addSelectColumns($c);
LieuPeer::addSelectColumns($c);

$c->addJoin(ReunionPeer::LIEU_REUNION,LieuPeer::ID_LIEU, Criteria::LEFT_JOIN);
$this->reunions = ReunionPeer::doSelect($c);
于 2010-06-03T07:18:31.773 回答
1

如果您在数据库模式中声明了这个外键,Propel 将为您创建额外的函数,在一个查询中执行相关表和对象的连接和水合:

$this->reunions = ReunionPeer::doSelectJoinLieu(new Criteria());
于 2010-06-03T11:29:55.527 回答