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');