Symfony 3 - заменить строку после представления рендеринга (аннотации)

Мне нужно заменить строку в поле зрения после рендеринга. Все мои контролеры используют аннотацию @Template ("путь").

Мой контроллер:

...
class AboutController extends Controller
{
    /**
     * @Route("/about-us", name = "about")
     * @Method("GET")
     * @Template("@AppBundle/Resources/views/About/index.html.twig")
     */
    public function indexAction()
    {
    }
}
...

Я знаю, что нужно делать это без аннотации:

...
class AboutController extends Controller
{
    /**
     * @Route("/about-us", name = "about")
     * @Method("GET")
     */
    public function indexAction()
    {
        $content = $this->renderView('AppBundle/Resources/views/About/index.html.twig', []);
        $content = str_replace('my text', 'my new text', $content);

        return new Response($content);
    }
}
...

Как я могу это сделать с помощью аннотации (@template)?

Разве не имеет смысла использовать переменные внутри ваших файлов twig?

Iwan Wijaya 23.07.2018 16:13

веб-сайт большой, и я должен заменить все ссылки на хеш js, если ссылка является другим доменом :)

Arkadiusz G. 23.07.2018 16:23
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Управление ответами api для исключений на Symfony с помощью KernelEvents
Управление ответами api для исключений на Symfony с помощью KernelEvents
Много раз при создании api нам нужно возвращать клиентам разные ответы в зависимости от возникшего исключения.
1
2
380
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Думаю, стоит использовать Система событий SymfonyonKernelResponse

Это позволит вам получить ответ после того, как действие контроллера вернет его, и изменить ответ перед его отправкой.

Чтобы подписаться на событие, следуйте Пример документа Syfmony. Вы не сказали нам, какую версию Symfony вы используете, это ссылки 3,4.

Надеюсь это поможет.

Хорошее решение! Спасибо!

Arkadiusz G. 23.07.2018 16:40

Другие вопросы по теме