Я планирую создать функцию, которая отправляет электронное письмо, но меня беспокоит то, что мне нужно получить свой шаблон электронной почты и передать переменные внутри.
А пока вот что у меня есть:
$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






Согласно эта ветка вам сначала нужно будет использовать fetch, например.
$template = $this->view->fetch('./partials/email-template.twig');
$html = $template->render(['name' => 'sample', ]);
Пока я получаю ноль в консоли. Я считаю, что мой путь неправильный. Как лучше всего указать каталог email-template.twig из каталога моего контроллера?
Как говорится в сообщении об ошибке, первым аргументом должен быть $ 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');
Вы передаете неверные данные методу
render(). Внимательно прочтите сообщение об исключении и следуйте документации Slim github.com/slimphp/Twig-View