Як зареєструвати користувацькі функції DQL
Дата оновлення перекладу 2023-09-04
Як зареєструвати користувацькі функції DQL
Doctrine дозволяє вам вказати користувацькі функції DQL. Щоб дізнатися більше по цій темі, прочитайте статтю Книги рецептів Doctrine Визначені користувачем функції DQL.
В Symfony ви можете зареєструвати ваші користувацькі функції DQL наступним чином:
1 2 3 4 5 6 7 8 9 10 11 12
# config/packages/doctrine.yaml
doctrine:
orm:
# ...
dql:
string_functions:
test_string: App\DQL\StringFunction
second_string: App\DQL\SecondStringFunction
numeric_functions:
test_numeric: App\DQL\NumericFunction
datetime_functions:
test_datetime: App\DQL\DatetimeFunction
Note
Якщо entity_managers
були чітко названі, конфігурація функцій напряму з ORM викличе виключення
Нерозпізнана опція "dql" під "doctrine.orm"
. Блок конфігурації dql
має бути визначений під
названим менеджером сутностей.
1 2 3 4 5 6 7 8 9 10
# config/packages/doctrine.yaml
doctrine:
orm:
# ...
entity_managers:
example_manager:
# Розташуйте ваші функції тут
dql:
datetime_functions:
test_datetime: App\DQL\DatetimeFunction
Caution
Функції DQL інстанціюються Doctrine поза сервіс-контейнером Symfony, тому вам потрібно впроваджувати сервіси або параметри у користувацьку функцію DQL.