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