/** * Function to allow overruling of transform for certain models * * @param \MUtil_Model_ModelAbstract $model * @param \MUtil_Model_ModelAbstract $sub * @param array $data * @param array $join * @param string $name */ protected function transformSaveSubModel(\MUtil_Model_ModelAbstract $model, \MUtil_Model_ModelAbstract $sub, array &$row, array $join, $name) { if (!isset($row[$name])) { return; } $data = $row[$name]; $keys = array(); // Get the parent key values. foreach ($join as $parent => $child) { if (isset($row[$parent])) { $keys[$child] = $row[$parent]; } else { // if there is no parent identifier set, don't save return; } } foreach ($data as $key => $subrow) { // Make sure the (possibly changed) parent key // is stored in the sub data. $data[$key] = $keys + $subrow; } $saved = $sub->saveAll($data); $row[$name] = $saved; }