belongsTo as $assocKey => $assocData) { $assocModel =& $model->{$assocData['className']}; $field = Inflector::tableize($model->name) . '_count'; if (!empty($model->data[$model->name][$assocData['foreignKey']]) && $assocModel->hasField($field)) { $this->foreignTableIDs[$assocData['className']] = $model->data[$model->name][$assocData['foreignKey']]; $count = $model->findCount(array($model->name . '.' . $assocData['foreignKey'] => $this->foreignTableIDs[$assocData['className']])); $assocModel->id = $this->foreignTableIDs[$assocData['className']]; $assocModel->save(array($field => $count), false, array($field)); } } } } function beforeDelete(&$model) { foreach ($model->belongsTo as $assocKey => $assocData) { $this->foreignTableIDs[$assocData['className']] = $model->field($assocData['foreignKey']); } return true; } function afterDelete(&$model) { foreach ($model->belongsTo as $assocKey => $assocData) { $assocModel =& $model->{$assocData['className']}; $field = Inflector::tableize($model->name) . '_count'; if ($assocModel->hasField($field)) { $count = $model->findCount(array($model->name . '.' . $assocData['foreignKey'] => $this->foreignTableIDs[$assocData['className']])); $assocModel->id = $this->foreignTableIDs[$assocData['className']]; $assocModel->save(array($field => $count), false, array($field)); } } } } ?>