想象这个场景,我有一个名为"message_templates"的表,其结构如下:-
id
subject
body
,其中主体值为:-
<p>ID: ${PROJECT_ID} </p>
<p>Project's Title: ${PROJECT_TITLE} </p>
什么是最好的方式来代替这些变量在CakePHP -我知道它,CakeEmail有一个配置参数叫"模板",但事实并非如此,因为我的模板(体列)来自数据库。也许在发送前使用preg_replace
或sprintf
?
有人能帮帮我吗?
您只需要使用str_replace
并提供一个令牌数组和替换数组:-
$body = str_replace(
[
'${PROJECT_ID}',
'${PROJECT_TITLE}'
],
[
'1',
'Foo bar'
],
$data['MessageTemplate']['body']
);
您可以将$body
传递给CakeEmail并正常发送电子邮件