Symfony кастомизация locale
Тестирую с симфони, пытаюсь сделать проект с геотергетингом. Для Этого я решил использовать встроенный в симфони locale, но переделать его под города. Прикрутил определение и запись города, все хорошо, но столкнулся с проблемой так называемого whiteList для городов. Дело в том что мне не нужно чтобы в маршрут попадали "левые url". Сделал так:
#routes.yaml
main_locale:
path: /{_locale}
controller: App\Controller\Web\MainController::index
requirements:
_locale: '%app.locales%'
Затем в параметрах указал:
locales.yaml
parameters:
app.locales: moscow|saratov|sochi
Все работает хорошо, однако это удобно в случае, когда городов немного, а если их 1000, прописывать каждый не хочется, удобнее тянуть из базы или из метода. Подскажите, пожалуйста, как лучше сделать в таком случае?
Ответы (1 шт):
Проблему решил следующим образом: Добавил проход компилятора "CompilerPass" в котором добавил определение параметра, добавил собственный бандл, подключил его. Основная ошибка с которой я столкнулся, это подключение к базе в CompilerPass, по какой-то причине doctrine.dbal.url - не работал, пришлось вручную в doctrine.yaml вписывать подключение к базе, что не очень хорошо, но работает. Причину этой ошибки я не совсем понимаю, так что если есть решение лучше, просьба подсказать в комментариях.