私はPropelORM 1.6
プロジェクトにある種のGISサービスを使用して実装しています。データベース(MySQL)では、座標として、さまざまなアイテムの座標を格納するためにPOINTのフィールドタイプを使用しています。
schema.xml
テーブルモデルを構築するために、AFAIK空間データ型がまだサポートされていないため、この(POINT)フィールドをに設定しました。VARCHAR(255)
このフィールドの選択クエリの整理は、を使用してOKですCriteria::CUSTOM
が、Propelでよく知られているものを使用してこのフィールドを更新したい場合、GeomFromText
次のエラーが発生します。
警告: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でそのようなフィールドを更新するにはどうすればよいですか?
更新:この種のタスクにZendFramework
はZend_Db_Expr
、PropelORMに似たようなものがあるのではないでしょうか?