2016-12-10 2 views
0

Из моей таблицы имен, содержащего значение id, firstName, lastName Я хочу взять все строки, но из firstName я просто хочу первую букву.Symfony3 - Использование влево или вправо доктрина

Я знаю, что могу сделать пользовательский запрос mySql с доктриной, но задавался вопросом, есть ли еще ... хорошо docrtine способ делать такие вещи (и другие операции выбора значения).

Каким может быть способ сделать это с единственной доктриной?

Возможность получить полную строку, а затем разрезать ее на php не может быть и речи.

ответ

1

Я думаю, что вы ищете DQL Function substring(). Если вы используете построитель запросов, вы можете сделать $qb->expr()->substring(string, start,end). Если я правильно помню, позиция первого символа является 1 не равен 0.

См: http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/dql-doctrine-query-language.html

+0

Но оно получает данные, а затем подстроки, или другим способом? Реальная идея здесь для блога. Это желание получить кулак 50 символов огромного текста для списка блога. Я хочу избежать получения избыточных данных. – aln447

+0

В основном это означает SQL SUBSTR. Так что это делается на SQL Server не в вашем приложении. если вы сомневаетесь, дамп SQL. –

+0

Извините, что беспокою вас снова, но после принятия ответа я обнаружил, что не могу заставить операцию работать правильно. Пробовал использовать его следующим образом: '$ qb-> select (" p ") -> from (" AppBundle \ Entity \ Post "," p ");' '$ qb-> expr() -> substring ('p.name', 1, 1); ' ' $ query = $ qb-> getQuery(); ' Но он ничего не делает с текстом – aln447

Смежные вопросы