Метод getParameter
Метод getParameter класса AbstractController
возвращает значение параметра из контейнера параметров
Symfony. Первым параметром передаётся имя параметра.
Вторым необязательным параметром можно передать значение
по умолчанию, которое вернётся, если параметр не найден.
Метод удобен, когда нужно получить настройку приложения
прямо внутри контроллера.
Синтаксис
$this->getParameter(string $name, mixed $default = null): mixed
Пример
Давайте получим параметр app.locale внутри контроллера:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/', name: 'article_index')]
public function index(): Response
{
$locale = $this->getParameter('app.locale');
return new Response($locale);
}
}
?>
Результат выполнения кода:
"en"
Пример
Давайте получим параметр, которого нет в контейнере, и передадим значение по умолчанию:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/user', name: 'article_user')]
public function user(): Response
{
$limit = $this->getParameter('app.limit', 10);
return new Response((string) $limit);
}
}
?>
Результат выполнения кода:
"10"
Пример
Давайте передадим полученный параметр в Twig-шаблон:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_show')]
public function show(): Response
{
$title = $this->getParameter('app.title');
return $this->render('article/show.html.twig', [
'title' => $title,
]);
}
}
?>
Содержимое шаблона:
<p>{{ title }}</p>
Результат выполнения кода:
<p>hello</p>
Смотрите также
-
класс
AbstractController,
который является базой для контроллеров -
метод
render,
который рендерит Twig-шаблон -
метод
getUser,
который возвращает текущего пользователя -
метод
generateUrl,
который генерирует URL по имени маршрута