Mail::send('emails.mytemplate', $mymodel, function ($message) use ($email) {
$message->from('info@mail.com', 'Info')
->sender('info@mail.com', 'Info')
->replyTo(env('MAIL_REPLY_TO', 'info@mail.com'), 'Info')
->to($email)
->subject('You have new mail');
});
给出
Argument 2 passed to Illuminate\Mail\Mailer::send() must be of the type array, object given....
由于我想要发送的数据有点复杂,我真的希望将$myModel
集合发送到模板并从那里的MyModel
关系中提取数据,而不是将所有数据解析为新的多级数组并将其传递给Mail::send(...)
;
这是正确的方法还是我应该将模型及其所有关系解析为一个新数组并继续使用?
答案 0 :(得分:1)
有一种方法可以将实际对象发送到邮件模板。只需将您的逻辑更改为:
Mail::send('emails.mytemplate', ["mymodel" => $mymodel], function ($message) use ($email) {
$message->from('info@mail.com', 'Info')
->sender('info@mail.com', 'Info')
->replyTo(env('MAIL_REPLY_TO', 'info@mail.com'), 'Info')
->to($email)
->subject('You have new mail');
});
这样,在您的emails.mytemplate.blade.php
中,您仍然可以使用以下方式访问该对象的数据:
<p>My Model's name is {{ $mymodel->name }}</p>