Mysql
 sql >> база данни >  >> RDS >> Mysql

CakePHP 3.5 Винаги прилагайте MySQL функцията asText() към пространственото поле

AFAIK няма такава функционалност, съдържанието на класове тип и клауза за избор никога не се докосва.

Ако искате да приложите това към всички находки, можете например да използвате Model.beforeFind() събитие, преминете през select клауза и трансформирайте полетата в изрази. Ето бърз и мръсен пример, където field е името на POLYGON тип колона:

// in the respective table class

use Cake\Event\Event;
use Cake\ORM\Query;

// ...

public function beforeFind(Event $event, Query $query, \ArrayObject $options, $primary)
{
    $query->traverse(
        function (&$value) use ($query) {
            if (empty($value)) {
                $value = $query->aliasFields($this->getSchema()->columns());
            }

            foreach ($value as $key => $field) {
                if (is_string($field) &&
                    $this->aliasField($field) === $this->aliasField('field')
                ) {
                    unset($value[$key]);
                    $value[key($query->aliasField($field))] = $query->func()->AsText([
                        $this->aliasField('field') => 'identifier'
                    ]);
                }
            }
        },
        ['select']
    );
}

Може да се наложи да отчитате $field като изрази също, в случай че полето може да се използва в един и трябва да бъде преобразувано и там.

Друг начин би бил да преобразувате данните на ниво PHP в класа на типа 'toPHP() метод, както вече е посочено във вашия пример за код.

Вижте също



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да оптимизираме mysql заявката за получаване на категории и подкатегории

  2. Свържете се с MariaDB от Java приложение в NetBeans на Linux (Mageia)

  3. Напишете sql собствена заявка с ляво присъединяване и странично разделяне в хибернация (springboot)

  4. MySQL:Изчисляване на оставащите дни абонаменти въз основа на плащанията

  5. Как да се показват филтрирани данни в JFreeChart