public function fetchAllDependency($actionId) { $dbAdapter = $this->getDbAdapter(); $select = $this->getDbSql()->select(['sa' => \System\Model\Action\DependencyMapper::TABLE_NAME]); $select->where(['sa.actionid' => $actionId]); $query = $this->getDbSql()->buildSqlString($select); $rows = $dbAdapter->query($query, $dbAdapter::QUERY_MODE_EXECUTE); $actionIds = []; if ($rows->count()) { foreach ($rows as $row) { $actionIds[$row['dependencyId']] = $row['dependencyId']; } } $result = []; if (count($actionIds)) { $select = $this->getDbSql()->select(['a' => \System\Model\ActionMapper::TABLE_NAME]); $select->join(['sc' => \System\Model\ControllerMapper::TABLE_NAME], 'a.controllerId = sc.id', ['sc.name' => 'name']); $select->join(['sm' => \System\Model\ModuleMapper::TABLE_NAME], 'sc.moduleId = sm.id', ['sm.name' => 'name']); $select->where(['a.id' => $actionIds]); $query = $this->getDbSql()->buildSqlString($select); $rows = $dbAdapter->query($query, $dbAdapter::QUERY_MODE_EXECUTE); if ($rows->count()) { foreach ($rows as $row) { $action = new \System\Model\Action(); $action->exchangeArray((array) $row); $action->addOption('uri', '/' . $row['sm.name'] . '/' . $row['sc.name'] . '/' . $row['name']); $result[] = $action; } } } return $result; }