Последующий запрос, не включайте уже собранный результатPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Последующий запрос, не включайте уже собранный результат

Сообщение Anonymous »

Немного странно

Я написал в своем репозитории функцию поиска, которая принимает строковый запрос.

При этом он выполняет быстрый запрос с поиском по подстановочным знакам в заголовке объекта в поисках совпадения для первого бита заголовка.

После этого я выполняю второй запрос (поскольку Doctrine2 не поддерживает союзы), чтобы выполнить общий поиск по подстановочным знакам по всему заголовку.

Очевидно, это будет означать, что он получает те же результаты, что и предыдущий запрос. Итак, я хочу сообщить DQL во втором запросе, чтобы игнорировать уже полученные результаты.

Но я просто не знаю, как это вообще предоставить

Вот моя функция поиска:< /p>

Код: Выделить всё

    public function search($search) {

$query = $this->getEntityManager()->createQueryBuilder();
$query->select('v')
->from($this->getEntityName(), 'v')
->where($query->expr()->like('v.title', $query->expr()->literal(sprintf('%s%%', $search))));

$set1 = $query->getQuery()->getResult();

$query->where(
$query->expr()->andX(
$query->expr()->like('v.title', $query->expr()->literal(sprintf('%%%s%%', $search))),
$query->expr()->notIn('v',  $set1) // Trying to provide the already acquired set of the results, to negate from this query
)
);

$set2 = $query->getQuery()->getResult();

$result = array_merge($set1, $set2);

return $result;
}
Это сейчас не работает, поскольку пытается преобразовать массив в строку.

Это может показаться претенциозным, но я бы не хотел писать цикл по первому набору только для извлечения массива идентификаторов, чтобы предоставить второй набор для отрицания. Я знаю, что DQL поддерживает чтение полных объектов сущностей и массивов полных объектов, но я уверен, что просто не наткнулся на правильный метод предиката, который знает, как его использовать.

Подробнее здесь: https://stackoverflow.com/questions/253 ... ted-result
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»