Php 连接递归在推进ORM中的左连接上有问题
在Propel ORM(1.6.5)中,当我使用()将表“a”连接到表“B”,然后在结果PropelObjectCollection上调用toArray()时,每个a记录中的B项再次包含a的所有记录(参见下面的转储) A与B保持连接。A中的每条记录正好指向B中的一条。我使用的代码:Php 连接递归在推进ORM中的左连接上有问题,php,orm,propel,Php,Orm,Propel,在Propel ORM(1.6.5)中,当我使用()将表“a”连接到表“B”,然后在结果PropelObjectCollection上调用toArray()时,每个a记录中的B项再次包含a的所有记录(参见下面的转储) A与B保持连接。A中的每条记录正好指向B中的一条。我使用的代码: $oAQuery = AQuery::create() ->joinB('b', Criteria::LEFT_JOIN) ->useBQuery() ->_if(str
$oAQuery = AQuery::create()
->joinB('b', Criteria::LEFT_JOIN)
->useBQuery()
->_if(strlen($sB))
->filterByBField1(str_replace(' ', '%', $sCity))
->_endif()
->endUse()
->with('b');
$oCollection = $oAQuery->find();
$aArray = $oAQuery->toArray();
toArray()转储:
我想停止这一点,主要是因为有很多记录,通过递归,我很容易就超过了512m的PHP内存限制(我甚至做了2048m的测试,但仍然超过了这个限制)您可以编写自己的格式化程序,这样您就可以决定如何处理结果集: 使用自定义格式化程序需要额外的方法调用:
$aArray = $oAQuery->setFormatter('MyCustomFormatter')->find();
// instead of $aArray = $oAQuery->toArray();
$aArray = $oAQuery->setFormatter('MyCustomFormatter')->find();
// instead of $aArray = $oAQuery->toArray();