Прозрачное выполнение функций SQL при загрузке / сохранении поля в Doctrine 2 - PullRequest
3 голосов
/ 14 октября 2011

Я работаю с Doctrine2, и у меня есть объект, содержащий строковое свойство, представляющее геометрию WKT :

class Entity {
    /** @Column(type="string") */
    protected $wkt;
}

Я хотел бы прозрачно сохранить это поле вполе GEOMETRY в базе данных, например:

INSERT INTO ... VALUES(GeomFromText(?))
SELECT AsText(field) FROM ...

Я посмотрел на пользовательские типы сопоставления , но не смог найти, где их применить.SQL-функция.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 14 октября 2011

Только что обнаружил, что эта функция в настоящее время не реализована, но для нее существует запрос функции:

http://www.doctrine -project.org / jira / browse / DBAL-15

Может быть доступно в Doctrine 2.2

Обновление : эта функция была подтверждена для версии 2.2, которая должна быть выпущена в ближайшее время .

Обновление : теперь это доступно в Doctrine 2.2!

0 голосов
/ 14 октября 2011

Возможно, вы могли бы взглянуть на LifecycleCallbacks :

/**
 * @PrePersist
 */
public function sendOptinMail() {
    //do sql query : SELECT GeoFromText()...
    $this->yourField = ...
}

, а затем установить в поле возвращаемое значение.

...