Работа с полигональными полями MySQL в CakePHP - PullRequest
0 голосов
/ 14 ноября 2018

У меня есть таблица MySQL с полем многоугольника. Могу ли я использовать CakePHP для сохранения / редактирования записей?

Единственный найденный мной способ - использовать необработанные запросы MySQL. Что не очень хорошо, потому что Validation и BeforeSave / AfterSave не будут выполнены.

Другой, более удачный подход, который я попробовал, потерпел неудачу.

$polygonString = 'PolygonFromText('POLYGON((x x, x x, x x))')';

$area = $areasTable->newEntity();
$area = $areasTable->patchEntity(
    $area,
    [
        'area' => $polygonString,
    ]
);
$areasTable->save($area);

Это приведет к следующему запросу.

INSERT INTO areas (area)
    VALUES ('PolygonFromText(''POLYGON((x x,x x))'')');

Это потому, что CakePHP считает, что это весь текст. Но PolygonFromText - это функция mysql ....

...