用 CakePHP 中的特定信息替换来自数据库的模板正文电子邮件的变量
Substitute variables of a template body email from database by specific information in CakePHP
想象一下这个场景,我有一个名为 "message_templates" 的 table,其结构如下:-
id
subject
body
其中 body 值为:-
<p>ID: ${PROJECT_ID} </p>
<p>Project's Title: ${PROJECT_TITLE} </p>
在 CakePHP 中替换这些变量的最佳方法是什么 - 我知道,CakeEmail 有一个名为 "template" 的配置参数,但事实并非如此,因为我的模板(正文列) 来自数据库。也许在发送前使用 preg_replace
或 sprintf
?
有人可以帮助我吗?
您只需要使用 str_replace
并提供一个标记数组和一个替换数组:-
$body = str_replace(
[
'${PROJECT_ID}',
'${PROJECT_TITLE}'
],
[
'1',
'Foo bar'
],
$data['MessageTemplate']['body']
);
然后您可以将 $body
传递给 CakeEmail 并照常发送电子邮件。
想象一下这个场景,我有一个名为 "message_templates" 的 table,其结构如下:-
id
subject
body
其中 body 值为:-
<p>ID: ${PROJECT_ID} </p>
<p>Project's Title: ${PROJECT_TITLE} </p>
在 CakePHP 中替换这些变量的最佳方法是什么 - 我知道,CakeEmail 有一个名为 "template" 的配置参数,但事实并非如此,因为我的模板(正文列) 来自数据库。也许在发送前使用 preg_replace
或 sprintf
?
有人可以帮助我吗?
您只需要使用 str_replace
并提供一个标记数组和一个替换数组:-
$body = str_replace(
[
'${PROJECT_ID}',
'${PROJECT_TITLE}'
],
[
'1',
'Foo bar'
],
$data['MessageTemplate']['body']
);
然后您可以将 $body
传递给 CakeEmail 并照常发送电子邮件。