find('count')find('all')组合

时间:2013-01-30 02:25:00

标签: php cakephp

我在下面找到了一个代码来查找所有学生名单

$fub = $this->Customer->find('all', array('conditions' => array('Customer.customers_types' => 'student')));

我在下面有一个代码来计算尝试测试的学生人数。

$totalTests = $this->Customer->Test->find('count', array('conditions' => array('Test.customer_id' => $fub['Customer']['id'])));

$this->set('totalTests', $totalTests);

但是,我不止一个学生是客户。如何使用$ fub的结果并将其放入$ totalTests条件中,以获得尝试测试的学生总数。

调试器::转储($ FUB);

array(
    array(),
    array(),
    array(),
    array(),
    array(),
    array()
)

2 个答案:

答案 0 :(得分:0)

您应该使用[CakePHPs counterCache]。它会跟踪相关项目的数量。

答案 1 :(得分:0)

在您的计数查询中,您尝试的条件可能不匹配,并返回数组为空

$fub['Customer']['id']

是空的。首先在计数查询之前调试$ fub。 我遵循的方式是设置

$fub['customer']['id']

变成一个变量,就像那个

$f = $fub['customer']['id']
在计数查询之前

并把这个变量放在你的条件

$totalTests = $this->Customer->Test->find('count', array('conditions' => array('Test.customer_id' => $f)));

试试这个。