2012-01-10 2 views
0

Что делать, если я хочу добавить правила маршрутизации из базы данных. Должен ли я использовать https://github.com/symfony-cmf/ChainRoutingBundle или есть другое более простое решение?Правила маршрутизации Symfony2 из базы данных

+1

Задайте конкретный вопрос и не обвиняйте кого-либо, если вы не знаете правильного решения. ;) Что касается создания динамических маршрутов, я бы использовал прослушиватель для события kernel.request. [Дополнительная информация] (http://symfony.com/doc/2.0/book/internals.html#kernel-request-event) –

ответ

14

Слушайте kernel.request и используйте $request->getPathInfo(), чтобы запросить базу данных по маршруту. Если вы его найдете, установите атрибут _controller в запросе.

$request->attributes->set('_controller', $row['controller']); 

Если вы работаете мастер филиала (Symfony 2.1) слушатель должен будет иметь приоритет больше, чем 32, так что будет работать до маршрутизатора.

+0

спасибо, хорошая идея – Ivan

0

Самое простое, что, возможно, работа, чтобы добавить маршрут к контроллеру по умолчанию: ({ "+" "слизняка" =} "/ страница/{} слизняка", требования =)

@Route

Затем в действии найдите {slug} из таблицы базы данных.

См. @Route и /'s in routes.

+0

спасибо, но мне нужно добавить маршрутизатор из базы данных. Я нашел пакет sonataAdmin с подробной информацией. – Ivan

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