【发布时间】:2017-05-27 19:44:00
【问题描述】:
我正在开发一个系统,该系统保存来自客户计算机的报告并在列表中显示故障。我正在尝试编写一个查询来定位所有当前发生故障或过去发生故障的系统。
我的Computers 模型有一个字段last_report_pass,可以让我快速找到当天发生故障的计算机。我的Reports 与一个计算机 ID 相关联,并且有一个名为status 的字段表示它是通过还是失败。
我正在尝试编写一个查询,它只会显示 last_report_pass 是 0,或者失败,或者如果它有已找到并加入的报告(意味着以前有失败),则显示它。
这是我的想法:
$computers = $this->Computers->find('all', [
'conditions' => [
'last_report_pass' => '0',
'COUNT(Reports) NOT' => '0'
],
'contain' => [
'Reports' => [
'conditions' => [
'status' => '0'
]
]
);
我不知道从这里做什么。我可能可以用 SQL 来编写它,但我试图坚持使用 Cake 的 ORM Query Builder。提前致谢!
【问题讨论】:
-
我可能会使用计数器缓存来计算这些...这很容易成为最简单的答案,然后您可以将报告的数量存储在 Computers 表中,这在其他方面会很方便也可能。
标签: cakephp associations filtering cakephp-3.0 query-builder