Если вы используете PostgreSQL и Doctrine DBAL на чтение и вам нужно получить
Проблема в том, что
Предлагаю простое и эффективное решение:
text[]
как массив PHP, то не стоит писать свой PgTextArrayType.Проблема в том, что
select array['a', 'b']
PostgreSQL возвращает как '{a,b}'
, а select array['a', 'b c']
как '{a,"b c"}'
. Очевидно, что explode(',', trim($value, '{}'))
тут не работает. Более-менее корректный парсинг выглядит монструозно и стоит дорого. При этом от массивов в запросах отказываться тоже не хочется, так как работать с ними зачастую очень удобно.Предлагаю простое и эффективное решение:
select array_to_json(array['a', 'b c'])
. Мудрёный парсинг тут не нужен, PgTextArrayType тоже писать не надо — можно использовать родной JsonType.