Массив маскируется как строка в выражении "IN" - PullRequest
0 голосов
/ 18 февраля 2012

При использовании этого DQL

$getImages = $em->createQuery('SELECT stuff
    FROM MyBundle:MyModelClass
    WHERE model.id NOT IN (:hide)')
->setParameter('hide', join(',', $hide), 'array');

Полученный SQL будет сопоставлен с:

SELECT stuff FROM mymodelclass WHERE model.id NOT IN ('1,2,3');

Что явно не так, как должно быть

SELECT stuff FROM mymodelclass WHERE model.id NOT IN (1,2,3);

Итак, запрос выполнен корректно. Как я могу сказать доктрине, чтобы отобразить массив без экранирования его в строку?

1 Ответ

3 голосов
/ 18 февраля 2012

Посмотрите на руководство

$stmt = $conn->executeQuery('SELECT * FROM articles WHERE id IN (?)', array(array(1, 2, 3, 4, 5, 6)), array(\Doctrine\DBAL\Connection::PARAM_INT_ARRAY) );

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...