Доктрина: тип массива запросов

Doctrine может автоматически сериализовать простые значения массива PHP (см. https://www.doctrine-project.org/projects/doctrine-dbal/en/2.10/reference/types.html#array-types).

Пример

<?php
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Table(name = "my_table")
 */
class MyTable {
    /**
     * @var array
     *
     * @ORM\Column(name = "my_array", type = "json", nullable=true)
     */
    private $myArray;
}

Пример в базе данных

|   my_array    |
|---------------|
|'["FOO","BAR"]'|

Вопрос

Есть ли способ запросить эти значения без какого-либо уродливого регулярного выражения непосредственно с помощью DQL или с помощью построителя запросов?

$queryBuilder
    ->andWhere(":searchParam IN myTable.myArray")
    ->setParameter('searchParam', 'FOO');

Боковое примечание: я всегда мог обернуть searchParam и выполнить поиск по ключевому слову LIKE. Однако я ищу альтернативное решение.

О какой системе баз данных мы говорим? Например, в PostgreSQL есть Тип JSONB, который можно удобно запросить. Я не знаком с MySQL, но есть еще Тип данных JSON.

Furgas 31.07.2018 16:16

Postgresql, у которого есть собственный тип JSON. Но я ограничен в возможностях Doctrine и ее DQL.

Wolfer 31.07.2018 16:45

Верно, поэтому я не использую Doctrine :) Тем не менее, я считаю, что вы можете использовать необработанный SQL с Doctrine, но я не эксперт в этом.

Furgas 31.07.2018 16:58
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
1 535
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Нет, такого пути нет. Рекомендации: первыйвторой

К сожалению, правда: - \ Я отмечаю это как правильный ответ, пока Doctrine не реализует это.

Wolfer 20.12.2019 10:20

Другие вопросы по теме