public function execute(QueryContext $context) { if (!$this->forceDelete && $this->schema->getSoftDelete()) { $executor = TableQueryExecutor::makeUpdate($this->schema, array(TableSchema::SOFT_DELETE_FIELD => time()), $this->conditions); return $executor->execute($context); } $query = $this->toQueryString($context); return DB::delete($query, $context->getParams()); }
private function parseTableQuery(QueryContext $context) { $context->schema($this->schema); switch ($this->queryType) { case self::QUERY_SELECT: return TableQueryExecutor::makeSelect($this->schema, $this->softDeleteLess, $this->selectFields, $this->conditions, $this->joins, $this->orders, $this->groups, $this->havings, $this->selectQuerySettings); case self::QUERY_UPDATE: return TableQueryExecutor::makeUpdate($this->schema, $this->updates, $this->conditions); case self::QUERY_DELETE: return TableQueryExecutor::makeDelete($this->schema, $this->conditions, $this->forceDelete); case self::QUERY_INSERT: return TableQueryExecutor::makeInsert($this->schema, $this->inserts, $this->insertGetId); } return null; }