/** * 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; }
/** * 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; }
/** * 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; }
/** * 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; }
/** * 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; }