2015-06-03 3 views
1

В моем симфони проекте, у меня есть:Symfony2 маршрутизации без префикса

  1. example.com/ пользователь/имя пользователя => перейти к профилю пользователя
  2. example.com/ блог/theweathertoday => перейти к динамической страницы после блога
  3. example.com/ whoarewe => статическая страница, заданная в routig.yml

И я хотел бы реализовать:

  1. example.com/username => перейти к профилю пользователя
  2. example.com/theweathertoday => перейти к динамической страницы после блога
  3. example.com/ whoarewe => статическая страница

Не могли бы вы сказать мне, что это лучший путь к:

  • отдельного пользователя из блога искусства icle с страниц сайта? (контроллер, сервис, ...?)
  • как убедиться, что пользователь не зарегистрирован с ограниченным именем, например «whoarewe», который определен в routing.yml?

Каков наилучший подход?

ответ

2

Файл routing.yml - это только один из способов для загрузки маршрутов, но есть many other ways. Один из способов, который вам может понадобиться, - это custom route loader.

Поскольку загрузчики маршрута определяются как службы, вы можете вводить в них другие сервисы, такие как проверка имени пользователя, которая также может быть повторно использована частью вашего приложения, которая проверяет новую регистрацию пользователя.

Если вы не сделали что-то подобное, вам нужно будет маршрутизировать весь трафик, который соответствует ^/[^/]+, на своего рода посреднический фронт-контроллер, который примет согласованный параметр и решит, как его переслать.

Полный ответ на ваш вопрос будет приличным количеством работы, но, надеюсь, это поможет вам начать работу в правильном направлении.

-2

изменить example.com/user/username к example.com/username я думаю, вы просто должны удалить /пользователя в одном из ваших routing.yml файлов. то же с /блог. Эти файлы можно найти в каталогах Bundle в директории te Resources/config или в вашем каталоге app/config.

+0

Я не знаю, что вы говорите, но это не разрешает конфликт между тремя типами страниц. Например, пользователь, называемый «whoarewe», будет находиться в контакте со страницей «whoarewe» – user788721

+0

, если имя пользователя и theweathertoday тогда невозможно. Но возможно изменить порядок: example.com/{username}/user –

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