/** * * @author DuongNQ * @return array null * @param \Expert\Model\Expert\Subject $exp */ public function save($exp) { $data = array('expertId' => $exp->getExpertId(), 'subjectId' => $exp->getSubjectId(), 'createdById' => $exp->getCreatedById(), 'createdDateTime' => $exp->getCreatedDateTime()); /* @var $dbAdapter \Zend\Db\Adapter\Adapter */ $dbAdapter = $this->getServiceLocator()->get('dbAdapter'); /* @var $dbSql \Zend\Db\Sql\Sql */ $dbSql = $this->getServiceLocator()->get('dbSql'); if (!$exp->getId()) { $insert = $this->getDbSql()->insert(self::TABLE_NAME); $insert->values($data); $query = $dbSql->buildSqlString($insert); /* @var $results \Zend\Db\Adapter\Driver\Pdo\Result */ $results = $dbAdapter->query($query, $dbAdapter::QUERY_MODE_EXECUTE); $exp->setId($results->getGeneratedValue()); } else { $update = $this->getDbSql()->update(self::TABLE_NAME); $update->set($data); $update->where(['id' => (int) $exp->getId()]); $query = $dbSql->buildSqlString($update); $results = $dbAdapter->query($query, $dbAdapter::QUERY_MODE_EXECUTE); } return $results; }
/** * @author DuongNQ * @param \Expert\Model\Expert\Subject $exp * todo lay tat ca mon hoc ma mentor care */ public function fetchAllSubject($exp) { $select = $this->getDbSql()->select(['es' => self::TABLE_NAME]); $select->join(['s' => \Subject\Model\SubjectMapper::TABLE_NAME], 's.id=es.subjectId', 'name'); if ($exp->getExpertId()) { $select->where(['es.expertId' => $exp->getExpertId()]); } if ($exp->getOption('expertIds')) { $select->where(['es.expertId' => $exp->getOption('expertIds')]); } $query = $this->getDbSql()->buildSqlString($select); $rows = $this->getDbAdapter()->query($query, Adapter::QUERY_MODE_EXECUTE); $rows = $rows->toArray(); $result = []; if (count($rows)) { foreach ($rows as $r) { $result[$r['expertId']][$r['subjectId']] = $r['name']; } } // vdump($result);die; return $result; }