Symfony 5. Как добавить url из базы в @rout?

Для добавления URL из базы данных в аннотацию @Route в Symfony 5 следует создать динамический маршрут (dynamic route). Для этого вы можете использовать requirements аргумент в аннотации @Route.

1. Первым шагом необходимо определить новый маршрут в файле контроллера. Например, вы можете создать метод dynamicRoute в вашем контроллере и добавить аннотацию @Route перед ним:

use SymfonyComponentRoutingAnnotationRoute;

/**
 * @Route("/{slug}", name="dynamic_route", requirements={"slug"="[a-z0-9]+"})
 */
public function dynamicRoute($slug)
{
    // ваш код обработки маршрута
}

2. В аннотации @Route вы указываете путь к маршруту в фигурных скобках {slug}, где slug - это переменная, которая будет содержать значение из базы данных.

3. Для ограничения значения переменной slug вы можете использовать requirements. В приведенном выше примере, мы ограничили значение slug только латинскими буквами и цифрами. Вы можете настроить ограничения в соответствии с вашими потребностями.

4. Далее, в ваших контроллерах и сервисах, где вам необходимо сгенерировать URL для данного маршрута, вы можете использовать функцию generateUrl() или redirectToRoute().

// генерация URL в контроллере
$slug = 'value_from_database';
$url = $this->generateUrl('dynamic_route', ['slug' => $slug]);

// перенаправление на динамический маршрут
return $this->redirectToRoute('dynamic_route', ['slug' => $slug]);

5. В результате, при обращении к URL вида /value_from_database, Symfony будет автоматически определить значение переменной slug и передать его в ваш метод dynamicRoute().

Таким образом, вы можете добавить URL из базы данных в аннотацию @Route в Symfony 5, используя динамический маршрут и параметр requirements.