1

想象一下这种情况,我有一个名为“message_templates”的表,其结构如下:-

id
subject
body

身体是:-

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

在 CakePHP 中替换这些变量的最佳方法是什么 - 我知道,CakeEmail 有一个名为“模板”的配置参数,但事实并非如此,因为我的模板(正文列)来自数据库。也许使用preg_replacesprintf发送之前?

有人可以帮助我吗?

4

1 回答 1

3

您只需要使用str_replace并提供一组标记和一组替换:-

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

然后,您可以传递$body到 CakeEmail 并照常发送电子邮件。

于 2015-10-26T19:34:06.927 回答