Intento usar las funciones proporcionadas por https://github.com/martin-georgiev/postgresql-for-doctrine/ pero Symfony devuelve este error:
Error: la clase 'JSONB_ARRAY_ELEMENTS' no está definida.
Aquí está el código de mi función en el archivo del repositorio:
$query = $this->createQueryBuilder('p') ->from('JSONB_ARRAY_ELEMENTS(CAST(p.wp_syncs AS JSONB))', 'pwps') ->getQuery() ->getResult();La función se activa en la doctrina.yaml :
dql: string_functions: # ... JSONB_ARRAY_ELEMENTS: MartinGeorgiev\Doctrine\ORM\Query\AST\Functions\JsonbArrayElementsNo puedes establecer una función o una subconsulta en la cláusula FROM de una consulta DQL de Doctrine.
Debería escribir una consulta SQL en su lugar:
$connection = $entityManager->getConnection(); // Get the DBAL connection // Create a DBAL Query builder. // Note that this query builder is NOT the same of the query builder returned by the EntityManager. $qb = $connection->createQueryBuilder(); $qb->select('*') ->from('jsonb_array_elements(CAST(p.wp_syncs AS JSONB))', 'pwps') ->getQuery() ->getResult();En este caso, no es necesario registrar la función en la configuración de la doctrina.