private function cascadeDelete(ModelInterface $model) { $modelsManager = $model->getModelsManager(); $hasManyRelations = $modelsManager->getHasMany($model); foreach ($hasManyRelations as $relation) { $relOptions = $relation->getOptions(); $foreignKey = $relOptions['foreignKey']; if (isset($foreignKey['action']) && $foreignKey['action'] === Relation::ACTION_CASCADE) { $alias = $relOptions['alias']; $relatedModels = $model->{"get{$alias}"}(); foreach ($relatedModels as $relModel) { $relModel->delete(); } } } }