Заменить переменные тела шаблона электронной почты из базы данных конкретной информацией в CakeStack Overflow

Представьте себе этот сценарий, у меня есть таблица с именем message_templates со следующей структурой:

id
subject
body

где тело значение:

<p>ID: ${PROJECT_ID} </p>
<p>Project's Title: ${PROJECT_TITLE} </p>

Каков наилучший способ замены этих переменных в CakePHP — я знаю это, CakeEmail имеет параметр конфигурации, называемый «шаблон», но это не так, потому что мой шаблон (колонна тела) приходит из базы данных. Может быть, использовать preg_replace или же sprintf перед отправкой?

Кто-нибудь может мне помочь?

1

Решение

Вам просто нужно использовать str_replace и предоставить массив токенов и массив замен:

$body = str_replace(
[
'${PROJECT_ID}',
'${PROJECT_TITLE}'
],
[
'1',
'Foo bar'
],
$data['MessageTemplate']['body']
);

Затем вы можете пройти $body в CakeEmail и отправьте письмо как обычно.

3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector