首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CakePHP可控制:如何设置深度条件?

CakePHP可控制:如何设置深度条件?
EN

Stack Overflow用户
提问于 2016-03-22 16:23:17
回答 1查看 105关注 0票数 1

模型关联

  • InfoFaturamento属于对比
  • 对比有很多ContratoCliente
  • ContratoCliente有许多VwCliente

我想获取所有VwClientes,其中InfoFaturamento等于通过参数传递的id。在不使用联接选项的情况下可以这样做吗?

这是我试过的密码。它正在返回所有的ContratoCliente

代码语言:javascript
复制
$test = $this->InfoFaturamento->Contrato->ContratoCliente->find('all', [
    'contain' => [
        'Contrato' => [
            'InfoFaturamento' => [
                'conditions' => [
                    'InfoFaturamento.id' => $idInfoFaturamento
                ]
            ]
        ] 
    ],
]);
debug($test); die();

所有的关联都建立在模型中。

我知道我可以使用递归选项来完成这个任务,但是我不喜欢使用它,因为它返回了大量不必要的数据,而且速度很慢。我也可以使用joins,但是使用joins是一个好的实践吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-22 16:43:04

在这样的场景中使用可控制的行为确实很费劲,而且会检索大量不必要的数据。您可能必须解除绑定和取消设置不需要的。

作为另一种选择,我建议您使用联接。它更快,更灵活,特别是在你提到的那种情况下。

您可以参考以下链接:

CakePHP CookBook:关联和联接

CakePHP:连接多个表

希望这能有所帮助。

安息吧!xD

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36159886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档