我正在PropelORM 1.6
为一个项目使用和实施某种 GIS 服务。在数据库 ( MySQL ) 中,对于坐标,我使用 POINT 字段类型来存储各种项目的坐标。
在schema.xml
构建表模型时,我已将此(POINT)字段设置为VARCHAR(255)
,因为尚不支持 AFAIK 空间数据类型。
使用 组织该字段的选择查询是可以的Criteria::CUSTOM
,但是当我想更新这个字段时,使用众所周知GeomFromText
的 Propel,我得到下一个错误:
警告:PDOStatement::execute(): SQLSTATE [22003]:数值超出范围:1416 无法从您发送到 /var/www/.../propel/util/BasePeer.php 中的 GEOMETRY 字段的数据中获取几何对象在线 425
我正在使用设置字段值
$object->setGeo("GeomFromText( 'POINT(48.211055 16.383728)' )");
我想这个字符串被 ORM 视为一个字符串值,而GeomFromText
不是像它应该的那样被视为一个函数。
不幸的是,没有Criteria::CUSTOM
设置字段值。
如何使用 PropelORM 更新这些字段?
更新:对于这类任务,PropelORM 中可能有类似的东西吗ZendFramework
?Zend_Db_Expr