/** * @param array $params * @return $this */ public function process(array $params = []) { $filter = $params['filter']; $order = $params['order']; if (count($filter) > 0) { foreach ($filter as $column => $conditions) { foreach ($conditions as $criterion => $value) { if (Mapper::MAPPER_LIKE === $criterion || Mapper::MAPPER_NOT_LIKE === $criterion) { $value = addslashes(preg_replace('/[^а-яa-z0-9_\\.]+/ui', '', $value)); $criterion = static::$criteria[$criterion]; $this->query->whereRaw("`{$column}` {$criterion} '%{$value}%'"); } else { $this->query->where($column, $value, static::$criteria[$criterion]); } } } } if (count($order) > 0) { foreach ($order as $column => $vector) { $this->query->order($column, $vector); } } return $this; }
/** * @return bool|int */ public function delete() { $this->beforeDelete(); $query = new QueryBuilder($this); $result = $this->exists() ? $query->delete() : 0; $this->afterDelete(); return $result; }