/** * @param \SplSubject|Logic $subject */ protected function fillJoins($subject) { $models = $subject->getEventObject(); $modelConfig = $subject->getModelService()->getParsedModelConfig($subject->getModelName()); if (!(is_array($models) || $models instanceof ResultSetInterface)) { $models = [$models]; } $aModels = []; foreach ($models as $_k => $aclModel) { if ($aclModel instanceof AclDataModel) { $mymodel = $aclModel->getDataModel(); } else { $mymodel = $aclModel; } foreach ($modelConfig->joins as $_k => $join) { if ($join['type'] == 'lookup') { $this->fillLookup($join, $subject, $mymodel); } elseif ($join['type'] == 'static_lookup') { $this->fillStaticLookup($join, $subject, $mymodel); } } $aModels[] = $mymodel->getArrayCopy(); } if ($models instanceof ResultSetInterface) { $models->initialize($aModels); } // else // { // $models = $aModels; // } }