[英]laravel mailables -> replace tokens after view rendered
以下內容:
我從wordpress數據庫中讀取帖子。 想法是,這些職位擔當主人。
例如,我們有一個WordPress帖子,其中包含帖子內容:
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發布內容作為主體,然后將laravel視圖插入wordpress內容(XX_LARAVEL_CONTENT_XX)。 並且在執行此操作時,請替換其他令牌(XX_DONATION_AMOUNT_XX)。
在laravel mailable呈現之前,我該怎么做? 例如,在將mailable的輸出傳遞到郵件服務之前,我想鈎住自己的過濾器,從mailable中獲取輸出,然后將該輸出放入wordpress帖子中。 有什么支持嗎?
我不太清楚為什么您選擇以這種方式構成視圖,但是為了實現這種方式,可以使用Mailable類中的callbacks
變量。 從您的觀點出發,消息將立即被調用
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.