在CakePHP中,我有一个模型Project和一个模型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',
)
);
}
?>
模型项目记录:
<?php
App::uses('AppModel', 'Model');
class ProjectRecord extends AppModel {
public $useTable = 'project_record';
public $hasOne = 'Project';
}
?>
ProjectRecord保存值:"金额"、"成本"answers"增值税"(百分比)
在我的项目索引中,我想查看一个项目的总数。因此,我必须收集与一个项目相关的所有ProjectRecord,然后将金额与成本和增值税相乘,然后将所有这些数字计算为一个值。
我知道这与虚拟字段有关,但我无法正确检索那些ProjectRecords。
我试图添加一个Helper,但无论我做了什么,我都收到了无法加载表(Project)的警告。
我不会在每次访问产品记录时计算这个值。我认为更好的解决方案是计算ProjectRecord::afterSave()回调中的值,并将总和保存到刚刚保存的ProjectRecord的关联Project(添加一个像total_sum或任何您喜欢的字段)。这样可以避免额外的复杂性或额外的查询。