В моем приложении Symfony2 люди могут писать тексты, которые будут опубликованы на веб-странице. Существует возможность написать новый текст, и вам нужно выбрать веб-страницу, к которой она будет принадлежать.Как я могу создать поле в форме Symfony2, используя querybuilder, исключая объекты без отношения «многие ко многим»?
Что я хочу достичь, так это то, что этот список веб-страниц показывает веб-страницы, которые еще не имеют только текст. В противном случае вы замените существующий текст.
Так что я хотел бы написать что-то вроде этого в моей форме типа:
$qb->select('wp')
->from('MyBundle:Webpage', 'wp')
->where('wp.webtexts is null')
->orderBy('wp.id');
Проблема возникает вокруг «wp.webtexts является недействительным» заявление. Это (полностью функционирующее) отношение «многие ко многим», и я хотел бы проверить, нет ли здесь отношений. Ошибка я получаю, это:
[Semantical Error] line 0, col 70 near 'webtexts is null': Error: Invalid PathExpression. StateFieldPathExpression or SingleValuedAssociationField expected.
Как я могу запросить веб-страницы, без каких-либо отношений к любому webtexts?
Добавлено:
Как можно подсчитать количество отношений? Это обозначение:
$qb->where($qb->expr()->count('wp.webtexts < 1'))
... дает мне:
[Syntax Error] line 0, col 85: Error: Expected Doctrine\ORM\Query\Lexer::T_CLOSE_PARENTHESIS, got '<'
Я думаю, что вы должны использовать что-то вроде 'count (wp.webtexts) = 0' – Ziumin
Хорошее мышление! Вы знаете, как это можно сделать? Я немного расширил свой вопрос ... –