/**
  * @param AbstractDbMapper $mapper
  */
 public function injectDbAdapter($mapper)
 {
     if ($mapper instanceof DbAdapterAwareInterface) {
         /* @var $dbAdapter Adapter */
         $dbAdapter = isset($this->creationOptions['dbAdapter']) ? $this->creationOptions['dbAdapter'] : $this->serviceLocator->get(Adapter::class);
         /** @var  $dbOptions DbOptions */
         $dbOptions = $this->serviceLocator->get(DbOptions::class);
         // enable foreign key constraints on sqlite.
         if ($dbOptions->isSqliteConstraints() && !$this->sqliteConstraints) {
             $dbAdapter->query('PRAGMA FOREIGN_KEYS = ON', Adapter::QUERY_MODE_EXECUTE);
             $this->sqliteConstraints = true;
         }
         $mapper->setMysql57Compatible($dbOptions->isMysql57Compatible())->setDbAdapter($dbAdapter);
     }
 }
 public function search(array $search, $sort, $select = null)
 {
     if (false === $this->getListOldEntries()) {
         $now = new DateTime();
         $select = $this->getSelect();
         $select->where->greaterThanOrEqualTo('dateTime', $now->format('Y-m-d H:i:s'));
     }
     return parent::search($search, $sort, $select);
 }
示例#3
0
 /**
  * @param array $search
  * @param string $sort
  * @param Select $select
  * @return \Zend\Db\ResultSet\HydratingResultSet|\Zend\Db\ResultSet\ResultSet|\Zend\Paginator\Paginator
  */
 public function search(array $search, $sort, $select = null)
 {
     if (str_replace('-', '', $sort) == 'name') {
         if (strchr($sort, '-')) {
             $sort = ['-lastname', '-firstname'];
         } else {
             $sort = ['lastname', 'firstname'];
         }
     }
     return parent::search($search, $sort, $select);
 }
 /**
  * Deletes a row from tree.
  *
  * @param int|array $where
  * @param string $table
  * @return int number of affected rows
  */
 public function delete($where, $table = null)
 {
     if (is_array($where)) {
         $pk = $where[$this->getPrimaryKey()];
     } else {
         $pk = (int) $where;
     }
     $row = $this->getPosition($pk);
     $where = new Where();
     $where->between(self::COLUMN_LEFT, $row->getLft(), $row->getRgt());
     $result = parent::delete($where, $table);
     if ($result) {
         $this->updateTree($row->getRgt(), '-', $row->width());
     }
     return $result;
 }
示例#5
0
 public function search(array $search, $sort, $select = null)
 {
     $select = $this->getSelect();
     $select->join('article', 'news.articleId=article.articleId', array(), Select::JOIN_LEFT);
     return parent::search($search, $sort, $select);
 }