Метод generateUrl
Метод generateUrl класса AbstractController
генерирует URL по имени маршрута. Первым параметром
передаётся имя маршрута, вторым - массив параметров
для подстановки в путь. Третьим параметром можно
передать флаг абсолютного URL. Метод возвращает
строку с готовым адресом.
Синтаксис
<?php
generateUrl(string $route, array $parameters = [], int $referenceType = UrlGeneratorInterface::ABSOLUTE_PATH)
?>
Пример
Давайте сгенерируем URL по имени маршрута:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(): Response
{
$url = $this->generateUrl('article_index');
return new Response($url);
}
}
?>
Результат выполнения кода:
"/article"
Пример
Давайте передадим параметр id в маршрут:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
class ArticleController extends AbstractController
{
#[Route('/article/{id}', name: 'article_show')]
public function show(int $id): Response
{
$url = $this->generateUrl('article_show', ['id' => 5]);
return new Response($url);
}
}
?>
Результат выполнения кода:
"/article/5"
Пример
Давайте сгенерируем абсолютный URL с доменом:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
use SymfonyComponentRoutingGeneratorUrlGeneratorInterface;
class ArticleController extends AbstractController
{
#[Route('/article/{id}', name: 'article_show')]
public function show(int $id): Response
{
$url = $this->generateUrl(
'article_show',
['id' => 5],
UrlGeneratorInterface::ABSOLUTE_URL
);
return new Response($url);
}
}
?>
Результат выполнения кода:
"http://localhost/article/5"
Смотрите также
-
класс
AbstractController,
который предоставляет метод generateUrl -
метод
redirectToRoute,
который делает редирект на маршрут -
метод
redirect,
который делает редирект по URL -
метод
render,
который рендерит Twig-шаблон