我有一个相当复杂的问题(无论如何对我来说),我不知道下一步该做什么。
首先,我将为您介绍该项目的一些背景。这个项目是让我记录客户并列出与这些客户相关的所有服务。我有三个表: 客户产品 CustomerRecordHub
Customer 表和 Products 表包含有关其各自方的信息。CustomerRecordHub 表基本上将这两个表链接在一起。因此,该表将包含客户 ID 和与该客户关联的产品。
因此,如果客户的 ID 为 1,并且该客户拥有三种产品,那么在 Products UD 字段中他们将拥有 1、2 和 3。因此该表将是:
身份证 | 公司ID | 产品ID
1 | 1 | 1
2 | 1 | 2
3 | 1 | 3
我使用 CustomerRecordHub 表作为主要参考表,然后从该表中查询 Customer 和 Product 表。我为 CustomerRecordHub 设置了以下关系:
<?php
public $belongsTo = array(
'Customer' => array(
'className' => 'Customer',
'foreignKey' => 'id',
),
'Product' => array(
'className' => 'Product',
'foreignKey' => 'id',
)
);
?>
我可以查询此表并从其他两个链接表中检索我想要的所有记录,而不会出现任何问题。
现在,我确实遇到的问题是,我想在一个页面上列出我拥有的所有客户,然后我想显示每个客户拥有多少产品。因此,如果我们使用我给出的示例,对于 ID 为 1 的客户,有三个产品链接到该客户。所以在页面上我想显示客户详细信息,在“产品”标题下我想获得显示的产品数量(在这种情况下应该显示数字 3)。
通常我会在 SQL 中使用 COUNT 命令,但我试图使代码尽可能严格地遵守 CakePHP 自己的约定,并且不在代码中使用原始 SQL。
目前,我正在使用的代码是这样的:
<?php
$this->loadModel('Customerrecordhub');
$customers = $this->Customerrecordhub->find('all', 'recursive' => 2));
$this->set('customers', $customers);
?>
在 HTML 中,我将所有数据泵入 foreach 循环内的表中。
我应该用什么来计算记录?