TIP: Use Markdown or, <pre> for multi line code blocks / <code> for inline code.
These forums are read-only and for archival purposes only!
Please join our new forums at discourse.kohanaframework.org
ORM - uncompress во время извлечения ? Или вообще.
  • Добрый день.

    Можно ли как-то через ORM извлекать данные, которые были записаны через COMPRESS () в mysql в BLOB?

    Ф-ю для извлечения в php найти не могу. Пробовал (gzuncompress, unpack).

    Может можно прописать правило на извлечение столбца в ORM ?

  • Приходится писать функции в ORM типа

    public function find_uncompress() { $result = DB::select("*", array(DB::expr("UNCOMPRESS(response)"), "response")) ->from($this->_table_name) ->where("id", "=", $this->pk()) ->execute()->as_array();

        return $result;
    }
    

    Задачу решает, но было бы приятнее просто указать в каких-то правилах как извлекать столбец, как фильтры после извлечения, только эти во время.

  • Еще не удобно использование distinct(). Метод вроде как вызывается для ORM но ничего не меняет в результате, находятся все равно все записи и приходится писать

    public function distinct_time() { $result = DB::select("time")->from($this->_table_name)->distinct("time")->order_by("time", "DESC")->execute()->as_array();

        return $result;
    }
    

    Куда можно написать свои пожелания, чтобы донести до разработчиков? :)

  • Коллега нашел решение. Это писать в модели орм, названия своих колонок переопределяются, как в примере.

    Можно переопределить функцию построения запроса, так что бы указаные поля были разархивированны protected function _build($type) { if($type==Database::SELECT) { $this->select(array(DB::expr("UNCOMPRESS(request)"),'requestUncompress')); $this->select(array(DB::expr("UNCOMPRESS(result)"),'resultUncompress')); } parent::_build($type);
    }

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

In this Discussion