Php 推进时的非模型连接

Php 推进时的非模型连接,php,propel,Php,Propel,如何在推进上写这个?模式: obj -- id object_id foo -- id SQL: PHP: 产出: Cannot fetch TableMap for undefined table: o 我用的是推进1.7。注意,“obj”和“foo”之间没有模型关系(应该是多态关系)。我宁愿避免编写自定义SQL。谢谢。原来添加JoinObject并不能添加正确的别名,所以我必须自己添加它们。这项工作: $objectsQuery = FooQuery::create() ->

如何在推进上写这个?模式:

obj
--
id
object_id

foo
--
id
SQL:

PHP:

产出:

Cannot fetch TableMap for undefined table: o

我用的是推进1.7。注意,“obj”和“foo”之间没有模型关系(应该是多态关系)。我宁愿避免编写自定义SQL。谢谢。

原来添加JoinObject并不能添加正确的别名,所以我必须自己添加它们。这项工作:

$objectsQuery = FooQuery::create()
   ->setModelAlias('f', true)
   ->addJoinObject($join, 'o') // 'o' here makes no difference, actually
   ->addAlias($join->getRightTableAlias(), $join->getRightTableName())
   ->addAscendingOrderByColumn('o.id');

是否确实需要第二个参数来添加joinObject?请尝试添加JoinObject($join)。尝试。。。没有任何变化。如果您添加AscendingOrderByColumn('obj.id'),
->addAscendingOrderByColumn('obj.id')
没有帮助。但是,
->addAlias($join->getRightTableAlias(),$join->getRightTableName())
做到了。发布太早:)忘记了ENTER发送评论:P帮助的是
->addAlias($join->getRightTableAlias(),$join->getRightTableName())
。所以,最后一个查询是:
objectsQuery=fookery::create()->setModelAlias('f',true)->addJoinObject($join,'o')->addAlias($join->getRightTableAlias(),$join->getRightTableName())->addAscendingOrderByColumn('o.id')
Cannot fetch TableMap for undefined table: o
$objectsQuery = FooQuery::create()
   ->setModelAlias('f', true)
   ->addJoinObject($join, 'o') // 'o' here makes no difference, actually
   ->addAlias($join->getRightTableAlias(), $join->getRightTableName())
   ->addAscendingOrderByColumn('o.id');