CakePHP Containable生成的查询太多了

时间:2015-07-07 17:19:39

标签: php mysql cakephp

我正在使用ContainableBehavior在我的CakePHP 2.4应用程序中获取查找的深层关联。但是,这导致太多的 SQL查询 - 在一页上成千上万。

为了简化我的关系,它看起来像这样:

Post
    hasMany
        - Sighting
            hasMany
                - Field
                    belongsTo
                        - Fieldtype

现在,当我在我的contain语句中执行find()指定这些时,我的DebugKit MySQL日志中充满了这样的查询,一遍又一遍地重复:

SELECT `Fieldtype`.`id`, `Fieldtype`.`name` FROM `dev_db`.`fieldtypes` 
AS `Fieldtype` WHERE `Fieldtype`.`id` = 48

基本上,它正在为每个Field的{​​{1}}进行手动查找,即使它已经拥有数据。

是否有一种解决方案可以返回这种不会重复查询的深层关联?我已尝试使用the Linkable behavior,但是

  • 这似乎只适用于一对一的关系(你无法使用 像Contain这样的链接从hasMany关系中获取数据)
  • 你必须从主模型开始 - 你不能包含所有你的 子记录,然后使用Linkable连接他们所属的模型。

代码:

Fieldtype

0 个答案:

没有答案