РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
156 of 1361 menu

Класс AbstractController

Класс AbstractController является базовым классом для всех контроллеров в Symfony. Он предоставляет удобные методы для рендеринга шаблонов, создания редиректов, генерации URL, работы с формами, вспышками и проверкой прав доступа. Наследуя контроллер от этого класса, вы получаете доступ ко всем этим инструментам через переменную $this.

Класс не имеет собственного конструктора и не требует передачи каких-либо параметров. Все его методы являются защищёнными, поэтому вызывать их можно только внутри контроллера.

Синтаксис

<?php use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; class MyController extends AbstractController { // methods } ?>

Пример

Давайте создадим простой контроллер, который наследуется от AbstractController и возвращает ответ через метод render:

<?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 { return $this->render('article/index.html.twig', [ 'title' => 'hello', ]); } } ?>

Шаблон для этого контроллера:

<p>{{ title }}</p>

Результат выполнения кода:

<p>hello</p>

Пример

Давайте используем метод redirectToRoute для перенаправления на другой маршрут:

<?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('/old', name: 'article_old')] public function old(): Response { return $this->redirectToRoute('article_index'); } #[Route('/new', name: 'article_index')] public function index(): Response { return new Response('abcde'); } } ?>

Результат выполнения кода для адреса /old:

abcde

Смотрите также

  • метод render,
    который рендерит Twig-шаблон
  • метод redirectToRoute,
    который выполняет редирект на маршрут
  • метод json,
    который возвращает JSON-ответ
  • метод getUser,
    который возвращает текущего пользователя
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить