我们正在使用Propel(1.7)进行PHP。我在加入物体时遇到了一些问题。
以下是一个例子:
Table A
--------
id
anyColumn
Table B
--------
id
a_id
使用推进我查询来自Table A
的对象,但希望(左)加入来自b
的条目。
查询如下:
$as = AQuery::create()->filterByAnyColumn(anyValue)->leftJoinWithB()->find();
我输出了mysql查询,看起来不错。我也手动调用查询,b中的所有列也在那里调用。所以到目前为止一切看起来都不错......但是:
如果我有一个来自现在的对象并且调用$a->getBs();
推进将创建一个新查询。但我认为我可以避免这个问题,因为我已经加入B.我做错了什么?
答案 0 :(得分:0)
请尝试使用joinWith()
:
$as = AQuery::create()
->filterByAnyColumn(anyValue)
->joinWith('A.B')
->find();
详情请见:propelorm.org/Propel/reference/model-criteria.html#minimizing-queries