示例#1
0
 /**
  * Build query from filter data
  * @param Query $query Query object
  * @param array $data Filter data ($this->request->query)
  * @return Query $query Query object
  */
 public function queryFromFilter(Query $query, array $data = [])
 {
     $query = parent::queryFromFilter($query, $data);
     //"Name" field
     if (!empty($data['name']) && strlen($data['name']) > 2) {
         $query->where([sprintf('%s.tag LIKE', $this->alias()) => sprintf('%%%s%%', $data['name'])]);
     }
     return $query;
 }
示例#2
0
 /**
  * Build query from filter data
  * @param Query $query Query object
  * @param array $data Filter data ($this->request->query)
  * @return Query $query Query object
  * @uses \MeCms\Model\Table\AppTable::queryFromFilter()
  */
 public function queryFromFilter(Query $query, array $data = [])
 {
     $query = parent::queryFromFilter($query, $data);
     //"Is spot?" field
     if (!empty($data['spot']) && $data['spot']) {
         $query->where([sprintf('%s.is_spot', $this->alias()) => true]);
     }
     return $query;
 }
示例#3
0
 /**
  * Build query from filter data
  * @param Query $query Query object
  * @param array $data Filter data ($this->request->query)
  * @return Query $query Query object
  * @uses \MeCms\Model\Table\AppTable::queryFromFilter()
  */
 public function queryFromFilter(Query $query, array $data = [])
 {
     $query = parent::queryFromFilter($query, $data);
     //"Album" field
     if (!empty($data['album']) && preg_match('/^[1-9]\\d*$/', $data['album'])) {
         $query->where([sprintf('%s.album_id', $this->alias()) => $data['album']]);
     }
     return $query;
 }
示例#4
0
 /**
  * Build query from filter data
  * @param Query $query Query object
  * @param array $data Filter data ($this->request->query)
  * @return Query $query Query object
  * @uses \MeCms\Model\Table\AppTable::queryFromFilter()
  */
 public function queryFromFilter(Query $query, array $data = [])
 {
     $query = parent::queryFromFilter($query, $data);
     //"Tag" field
     if (!empty($data['tag']) && strlen($data['tag']) > 2) {
         $query->matching('Tags', function ($q) use($data) {
             return $q->where([sprintf('%s.tag', $this->Tags->alias()) => $data['tag']]);
         });
     }
     return $query;
 }
示例#5
0
 /**
  * Build query from filter data
  * @param Query $query Query object
  * @param array $data Filter data ($this->request->query)
  * @return Query $query Query object
  * @uses \MeCms\Model\Table\AppTable::queryFromFilter()
  */
 public function queryFromFilter(Query $query, array $data = [])
 {
     $query = parent::queryFromFilter($query, $data);
     //"Username" field
     if (!empty($data['username']) && strlen($data['username']) > 2) {
         $query->where([sprintf('%s.username LIKE', $this->alias()) => sprintf('%%%s%%', $data['username'])]);
     }
     //"Group" field
     if (!empty($data['group']) && preg_match('/^[1-9]\\d*$/', $data['group'])) {
         $query->where([sprintf('%s.group_id', $this->alias()) => $data['group']]);
     }
     //"Status" field
     if (!empty($data['status']) && in_array($data['status'], ['active', 'pending', 'banned'])) {
         switch ($data['status']) {
             case 'active':
                 $query->where([sprintf('%s.active', $this->alias()) => true, sprintf('%s.banned', $this->alias()) => false]);
                 break;
             case 'pending':
                 $query->where([sprintf('%s.active', $this->alias()) => false]);
                 break;
             case 'banned':
                 $query->where([sprintf('%s.banned', $this->alias()) => true]);
                 break;
         }
     }
     return $query;
 }