我创建了两个单独的Excel文件$recent_signup_file, $ddr_failed_file
,并附加在laravel mailer上
Mail::send('emails.weeklyreports', ['data' => $data], function($message) use ($recipient, $subject_date, $recent_signup_file, $ddr_failed_file) {
$message->from('support@whitebelt.co', 'Whitebelt.co Support');
$message->to($recipient)->subject('Weekly Report '.$subject_date);
$message->addAttachment($recent_signup_file->store("xlsx",false,true)['full']);
$message->addAttachment($ddr_failed_file->store("xlsx",false,true)['full']);
});
但是它给了我重复的excel文件,这是对的还是我错过了什么,任何人都可以帮助我。
我怎么办?
答案 0 :(得分:1)
您正在使用哪个版本的Laravel?如果您使用的是Laravel 5.4+,则应该使用Mailable,如下所示:
Mail::to($recipient)->send(new WeeklyReport($data));
在WeeklyReport可发送邮件中,您将附加文件并将数据数组传递到如下视图:
class WeeklyReport extends Mailable
{
use Queueable, SerializesModels;
public $data;
public function __construct($data)
{
$this->data = $data;
}
public function build()
{
return $this->view('emails.weeklyreports', $this->data)
->from('support@whitebelt.co', 'Whitebelt.co Support')
->attach($this->data['recent_signup_file']->store("xlsx",false,true)['full'])
->attach($this->data['ddr_failed_file']->store("xlsx",false,true)['full']);
}
}
请参阅Laravel文档here。
所有这些都假定您用来创建excel工作表的函数实际上按预期工作。由于我们在这里看不到该代码,因此我无法对其功能发表评论。但是以上是使用Laravel 5.4+附加文件的正确方法。