首页 > 解决方案 > 我正在尝试使用电子邮件模板中的替换器替换文本 - PHP

问题描述

你好社区

我正在尝试使用数据库中的数据替换电子邮件模板中的文本。

这是我的代码,它%<$receiver>%可以工作,但不能%<$sender>%

如果您知道我做错了什么或暗示我应该改变什么,我将不胜感激。

  public static function getRowValue($type, $receiver, $sender, $job) {

    $model = self::where('type', $type)->where('status', DEFAULT_TRUE)->first();

    if ($model) {

        $subject = $model->subject;

        $page = "admin.templates.email.email";

        $email = $receiver->email;

        $model->content = html_entity_decode($model->content, ENT_COMPAT, 'UTF-8');

        $sender_replaced = ($sender) ? str_replace('%<$sender>%',$sender->name, $model->content) : $model->content;

        $receiver_replaced = ($receiver) ? str_replace('%<$receiver>%',$receiver->name,$sender_replaced) : $sender_replaced;

        $job_replaced = ($job) ? str_replace('%<$job>%',$job->name,$receiver_replaced) : $receiver_replaced;

        $message = $job_replaced;

        $email_data = [];

        $email_data['message'] = $message;

        Helper::send_email($page,$subject,$email,$email_data);

        return $model->message;

    }

    return "";
}

如果您需要其他信息,请随时询问,希望我的示例能帮助其他难以解决此问题的人。

<?= $email_data['message'] ?: "NO MESSAGE" ?></span></p>

行我如何在电子邮件模板中调用数据。

标签: php

解决方案


这部分代码没有任何问题,我错过了控制器中的数据流逻辑,我正在拉出 $sender 并且它没有被用户接受。

我现在必须更改数据流逻辑才能使其正常工作。

感谢大家的帮助。


推荐阅读