HI,
我尝试翻译此查询:
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')不存在。
为什么??
答案 0 :(得分: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);
答案 1 :(得分:1)
如果您在数据库模式中声明了此外键,Propel将为您创建额外的函数,以便在一个查询中执行相关表和对象的连接和水合:
$this->reunions = ReunionPeer::doSelectJoinLieu(new Criteria());