/** * Function to allow overruling of transform for certain models * * @param \MUtil_Model_ModelAbstract $model Parent model * @param \MUtil_Model_ModelAbstract $sub Sub model * @param array $data The nested data rows * @param array $join The join array * @param string $name Name of sub model * @param boolean $new True when loading a new item * @param boolean $isPostData With post data, unselected multiOptions values are not set so should be added */ protected function transformLoadSubModel(\MUtil_Model_ModelAbstract $model, \MUtil_Model_ModelAbstract $sub, array &$data, array $join, $name, $new, $isPostData) { foreach ($data as $key => $row) { // E.g. if loaded from a post if (isset($row[$name])) { $rows = $sub->processAfterLoad($row[$name], $new, $isPostData); } elseif ($new) { $rows = $sub->loadAllNew(); } else { $filter = $sub->getFilter(); foreach ($join as $parent => $child) { if (isset($row[$parent])) { $filter[$child] = $row[$parent]; } } // If $filter is empty, treat as new if (empty($filter)) { $rows = $sub->loadAllNew(); } else { $rows = $sub->load($filter); } } $data[$key][$name] = $rows; } }