Получить содержимое файла twig и передать переменные

Я планирую создать функцию, которая отправляет электронное письмо, но меня беспокоит то, что мне нужно получить свой шаблон электронной почты и передать переменные внутри.

А пока вот что у меня есть:

$template = $this->view->render('./partials/email-template.twig',['name'=>'sample']);

но я получаю эту ошибку:

Uncaught TypeError: Argument 1 passed to Slim\Views\Twig::render() must implement interfacePsr\Http\Message\ResponseInterface, string given, called in C:\xampp\htdocs\master\app\Controllers\Admin\VoucherController.php on line 34

Вы передаете неверные данные методу render(). Внимательно прочтите сообщение об исключении и следуйте документации Slim github.com/slimphp/Twig-View

Ruben 25.10.2018 10:20
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
454
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Согласно эта ветка вам сначала нужно будет использовать fetch, например.

$template = $this->view->fetch('./partials/email-template.twig');
$html = $template->render(['name' => 'sample', ]);

Пока я получаю ноль в консоли. Я считаю, что мой путь неправильный. Как лучше всего указать каталог email-template.twig из каталога моего контроллера?

kirito127 25.10.2018 10:39

Как говорится в сообщении об ошибке, первым аргументом должен быть $ response.

Приведен пример:

// Define named route
$app->get('/renderEmail/{name}', function ($request, $response, $args) {
    return $this->view->render($response, './partials/email-template.twig', [
        'name' => $args['name']
    ]);
})->setName('renderEmail');

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