如果我像这样向Laravel发送电子邮件:
Mail::send('folder.view', $data, function($msg)
{
$msg->to('dest@email.com');
$msg->subject('email subject');
});
我想扩展 Laravel 的核心类 Illuminate\Mail\Message.php要设置默认主题前缀,如下所示:
[Projectname] email subject
如何扩展核心类以避免被作曲家更新覆盖?
子类Message
并将代码放入不同的命名空间和文件中:
<?php
namespace mynamespace;
class MyMessage extends IlluminateMailMessage
{
// ...
}
随意接受克里斯的回答,因为他是正确的,我只是在扩展他说的话。Illuminate\Mail\Message 有一个subject()
方法,它是设置主题的方法。它看起来像这样:
/**
* Set the subject of the message.
*
* @param string $subject
* @return IlluminateMailMessage
*/
public function subject($subject)
{
$this->swift->setSubject($subject);
return $this;
}
如果你像克里斯在他的回答中所说的那样扩展它,你可以像这样扩展它:
public function subject($subject)
{
$this->swift->setSubject('[' . Config::get('app.project_name') . '] ' . $subject);
return $this;
}
假设您设置了app.project_name
配置指令。