【问题标题】:PHP/MySQL Propel join with does not hydrate objectsPHP/MySQL Propel 加入不水合对象
【发布时间】:2017-07-20 08:17:31
【问题描述】:

我们在 PHP 中使用 Propel (1.7)。而且我在为连接对象补水时遇到了一些问题。

这是一个例子:

Table A
-------- 
id
anyColumn

Table B
-------- 
id
a_id

使用 propel 查询来自 Table A 的对象,但想(左)加入来自 b 的条目。

查询看起来像:

$as = AQuery::create()->filterByAnyColumn(anyValue)->leftJoinWithB()->find();

我输出了 mysql 查询,看起来不错。我还手动调用了查询以及 b 中的所有列。所以到目前为止一切看起来都很好......但是:

如果我现在有一个对象并调用$a->getBs();,propel 将创建一个新查询。但是我认为我可以避免这个查询,因为我已经加入了 B。我做错了什么?

【问题讨论】:

    标签: php mysql join propel


    【解决方案1】:

    请尝试使用joinWith():

    $as = AQuery::create()
        ->filterByAnyColumn(anyValue)
        ->joinWith('A.B')
        ->find();
    

    详情请见:propelorm.org/Propel/reference/model-criteria.html#minimizing-queries

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多