Найти элемент в массиве данных с помощью createQueryBuilder

#php #query-builder

#php #конструктор запросов

Вопрос:

У меня есть таблица ( shops ), в которой я храню данные следующим образом: ["bsd1234","qwe9876"] в поле с именем products , и я хочу получить shops объекты, которые содержат данный продукт, используя createQueryBuilder() .

Это должно выглядеть так, но я не могу найти решение:

 public function findByProducts($value)
    {
       return $this->createQueryBuilder('s')
            ->andWhere('s.products = :val')
            ->setParameter('val', $value)
            ->orderBy('s.id', 'ASC')
            ->getQuery()
            ->getResult()
            ; 
    }
  

Можете ли вы помочь mw с этим?

Комментарии:

1. У вас есть несколько значений в одном products поле?

2. Одно поле products может содержать одно или несколько значений (сохраненных как ["bsd1234","qwe9876"] )

3. Да, хорошо, не делайте этого. Смотрите первую обычную форму . Вы должны использовать таблицу соединений, подобную shops_products , которая имеет одну строку для каждого магазина для каждого продукта.