दो विचार:
कंटेनेबल व्यवहार का उपयोग करके हर बार जब भी आपको इसकी आवश्यकता हो, सारांशित फ़ील्ड को गतिशील रूप से प्राप्त करें , जैसे (मेरे सिर के ऊपर से):
$this->Tree->find('all', array(
...
'contain' => array(
'Leaf' => array(
'fields' => array('SUM(Leaf.value)'),
'group' => array('Leaf.tree_id')
)
)
);
या ट्री मॉडल में एक नया कॉलम बनाएं जैसे leaf_values
और हर बार जब आप लीफ मॉडल में कुछ बदलते हैं तो इसे अपडेट करें:
// Leaf model
function afterSave() {
$sum = /* calculate sum */;
$this->Tree->updateAll(
array('Tree.leaf_values' => $sum),
array('Tree.id' => $this->data['Leaf']['tree_id'])
);
}
function afterDelete() {
// same for afterDelete
}