У меня есть следующие таблицы (статьи, категория, связь) структура:Doctrine 1.2 - Построение запроса после поиска пользователей ввода
articles
>id
>title
>body
cats
>id
>title
cat_article_relations
>id
>cat_id
>article_id
Теперь я создал страницу, где пользователь может выбрать одну или несколько категорий (с использованием флажков). После отправки формы поиска у меня есть массив со всеми выбранными идентификаторами категории. Теперь моя проблема возникает, когда я пытаюсь загрузить все статьи, которые имеют все выбранные категории.
При использовании:
...
->leftJoin('a.Cat_article_relations rl')
->andWhere('rl.cat_id = ?', $sg[0])
...
Это работает, потому что я только смотреть на один включены категории. Как только я добавляю несколько «-> andWhere» с циклом через все мои идентификаторы категории (в полученном массиве), он больше не будет работать. Я проверил документацию Doctrine 1.2 для любого решения, но ничего не нашел. «-> whereIn» и тому подобное не дают результатов, которые я хочу.
Я только хочу получить все статьи, которые получили отношение ко всем выбранным категориям. Может быть, кто-то может дать мне подсказку :)
Информация: Если у вас есть решение для чистого MySQL запросов это было бы большим подспорьем для меня тоже. Его не нужно писать с Доктриной.
Благодаря
Не могли бы вы объяснить, почему 'whereIn' неправильно в этом дело? – j0k
-> whereIn ('rl.cat_id', $ sg) возвращает все статьи, имеющие хотя бы одну из выбранных категорий, но я просто хочу получить статьи, которые находятся в связи со всеми категориями в моем массиве. – Peter