从CakePHP中的相关项目项中获取项目的总数

时间:2013-11-26 11:09:31

标签: php mysql cakephp cakephp-appmodel

在CakePHP中,我有一个模型项目和一个模型ProjectRecord:

<?php
class Project extends AppModel {
    public $useTable = 'project';

    public $hasOne = array( 
        'Customer' => array( 
                'foreignKey' => false, 
                'conditions' => array('Project.customer_id = Customer.id') 
        )
    ); 

    public $hasMany = array(
        'ProjectRecord' => array(
            'className' => 'ProjectRecord',
        )
    );
}
?>

Model ProjectRecord:

<?php
App::uses('AppModel', 'Model');

class ProjectRecord extends AppModel {
    public $useTable = 'project_record';

    public $hasOne = 'Project';

}
?>

ProjectRecord包含以下值:“金额”,“费用”和“增值税”(百分比)

在我的项目索引中,我希望看到项目的总数。因此,我将收集与一个项目相关的所有ProjectRecord,然后将该数量与成本和增值税相乘,然后将所有这些数字计算为一个值。

我知道它与虚拟字段有关,但我无法正确检索那些ProjectRecords。

我试图添加一个Helper,但不管我做了什么,我都得到了表(Project)无法加载的警告。

1 个答案:

答案 0 :(得分:1)

每次访问产品记录时,我都不会计算此值。我认为更好的解决方案是计算ProjectRecord :: afterSave()回调中的值,并将总和保存到刚刚保存的ProjectRecord的关联项目(添加像total_sum或任何你喜欢的字段)。这样可以避免额外的复杂性或其他查询。