saveAll() を使用して CakePHP に空間データを保存する際に問題があります。保存されているモデルの数があるため、クエリを手動で記述したくありません ( CakePHP での空間データの処理)。
また、このCakePHP と MySQL Spatial Extensionを読みましたが、同じことをしようとすると$db->expression()
、stdClass が返されます。
これは、出力された返されたオブジェクトです。
stdClass Object
(
[type] => expression
[value] => GeomFromText('POINT(48.18879 18.527579999999944)')
)
このオブジェクトをCakePHP および MySQL Spatial Extensionで使用されている方法で使用し、saveAll() で保存しようとすると、次のエラーが発生します。
エラー: タイプ stdClass のオブジェクトを配列として使用できません
ファイル: /www/s/t/u47728/public_html/lib/Cake/Model/Model.php
行: 2221
value プロパティを使用すると、クエリでエスケープされるため、単なる文字列になります。次に、次のエラーが表示されます。
エラー: SQLSTATE[22003]: 範囲外の数値: 1416 GEOMETRY フィールドに送信したデータからジオメトリ オブジェクトを取得できません
saveAll() は式をサポートしていますか?
アップデート
どうやら同じことがsave()関数などにも当てはまります....またsaveField()