laravel mailables -> 在呈现视图后替换令牌
laravel mailables -> replace tokens after view rendered
以下内容:
我从 wordpress 数据库中读取了 posts。这个想法是 post 充当主人。
例如我们有一个 wordpress post,内容 post:
Hi XX_USERNAME_XX,
nice to meet you.
XX_LARAVEL_CONTENT_XX
thanks for your donation of XX_DONATION_AMOUNT_XX
bye
我现在想发送一个正常的 laravel 可邮寄邮件,在发送时进行替换。现在问题是 laravel 中的视图通常充当主视图。
虽然在这种情况下,我希望 wordpress post 内容成为主内容,并将 laravel 视图插入到 wordpress 内容 (XX_LARAVEL_CONTENT_XX) 中。在这样做的同时,替换其他标记 (XX_DONATION_AMOUNT_XX)。
在呈现 laravel 可邮寄对象之前,我该怎么做?例如在将 mailable 的输出传递到邮件服务之前,我想挂钩我自己的过滤器,从 mailable 中获取输出并将该输出放入 wordpress post。有什么支持这个的吗?
我不太清楚你为什么选择以这种方式撰写你的观点,但为了以你的方式实现这一点,你可以在 Mailable class 中使用 callbacks
变量。他们将 called upon the message 在您的视图
完成后
Class MyMail extends Mailable
{
use Queueable, SerializesModels;
public $master;
publiс $placeholder = 'XX_LARAVEL_CONTENT_XX';
public function __construct($master)
{
$this->master = $master; // 'BEFORE + XX_LARAVEL_CONTENT_XX + AFTER';
}
public function build()
{
$this->callbacks[] = function ($message) {
$oldBody = $message->getBody();
$newBody = str_replace($this->placeholder, $oldBody, $this->master);
$message->setBody($newBody);
};
return $this->view('my-laravel-mail-view') // your normal message setup
->to('test@example.com')
->subject('Hello');
}
}
如果要替换多个变量,请记住 str_replace 支持数组作为搜索和替换:
str_replace(['aa', 'bb'], ['AA', 'BB'], $subject);
以下内容:
我从 wordpress 数据库中读取了 posts。这个想法是 post 充当主人。
例如我们有一个 wordpress post,内容 post:
Hi XX_USERNAME_XX,
nice to meet you.
XX_LARAVEL_CONTENT_XX
thanks for your donation of XX_DONATION_AMOUNT_XX
bye
我现在想发送一个正常的 laravel 可邮寄邮件,在发送时进行替换。现在问题是 laravel 中的视图通常充当主视图。
虽然在这种情况下,我希望 wordpress post 内容成为主内容,并将 laravel 视图插入到 wordpress 内容 (XX_LARAVEL_CONTENT_XX) 中。在这样做的同时,替换其他标记 (XX_DONATION_AMOUNT_XX)。
在呈现 laravel 可邮寄对象之前,我该怎么做?例如在将 mailable 的输出传递到邮件服务之前,我想挂钩我自己的过滤器,从 mailable 中获取输出并将该输出放入 wordpress post。有什么支持这个的吗?
我不太清楚你为什么选择以这种方式撰写你的观点,但为了以你的方式实现这一点,你可以在 Mailable class 中使用 callbacks
变量。他们将 called upon the message 在您的视图
Class MyMail extends Mailable
{
use Queueable, SerializesModels;
public $master;
publiс $placeholder = 'XX_LARAVEL_CONTENT_XX';
public function __construct($master)
{
$this->master = $master; // 'BEFORE + XX_LARAVEL_CONTENT_XX + AFTER';
}
public function build()
{
$this->callbacks[] = function ($message) {
$oldBody = $message->getBody();
$newBody = str_replace($this->placeholder, $oldBody, $this->master);
$message->setBody($newBody);
};
return $this->view('my-laravel-mail-view') // your normal message setup
->to('test@example.com')
->subject('Hello');
}
}
如果要替换多个变量,请记住 str_replace 支持数组作为搜索和替换:
str_replace(['aa', 'bb'], ['AA', 'BB'], $subject);