/** * @return array */ public function getPrepared() { $e = $this->Model->dialectify()->getEscapeChar(); $table = $this->Model->getTableName(); list($query, $place) = (new Where($this->Model, $this->where))->getPrepared(); $query = "DELETE FROM {$e}{$table}{$e} WHERE {$query}"; return [$query, $place]; }
/** * @return array */ public function getPrepared() { $e = $this->Model->dialectify()->getEscapeChar(); $table = $this->Model->getTableName(); list($setQuery, $setPlace) = $this->handleSet($e); $query = "UPDATE {$e}{$table}{$e} SET {$setQuery}"; $wherePlace = []; if ($this->where) { list($whereQuery, $wherePlace) = (new Where($this->Model, $this->where))->getPrepared(); $query .= " WHERE {$whereQuery}"; } return [$query, array_merge($setPlace, $wherePlace)]; }
/** * @param string $field * @return string */ private function getTableField($field) { $esc = $this->Model->dialectify()->getEscapeChar(); $out = $esc . $field . $esc; if ($this->prefix) { $out = $esc . $this->prefix . $esc . '.' . $out; } return $out; }
/** * @param string $str * @return string */ protected function handleColumnedString($str) { $e = $this->Model->dialectify()->getEscapeChar(); $arr = explode('.', $str); if (count($arr) > 1) { $last = array_pop($arr); $str = join('.', $arr); return "{$e}{$str}{$e}.{$e}{$last}{$e}"; } return "{$e}{$str}{$e}"; }
/** * @param Model $Model * @return Closure */ private function getDate(Model $Model) { $dateFormat = $Model->dialectify()->getDateFormat(); return function ($attr, Closure $getValue) use($dateFormat) { $value = $getValue($attr); return is_string($value) ? Carbon::createFromFormat($dateFormat, $value) : $value; }; }
/** * Handle date/datetime. * @param Model $Model * @param mixed $value * @return mixed */ private function getDate(Model $Model, $value) { if ($value instanceof Carbon) { return $value->format($Model->dialectify()->getDateFormat()); } return $value; }