在我的项目中,在有人填写价格表后,我想给他/她发送一封电子邮件。在控制器中,我创建了一个数组,我想传递给mailable,以便在电子邮件中显示。
我现在的位置:
$params = array(
'name' => $name, //user's data
'email' => $email,
'phone' => $phone,
'data' => $data, //other stuffs in the form
);
Mail::to($email)
->send(new pricequote($params));
之后如何从mailable类传递到模板?
答案 0 :(得分:1)
我认为pricequote是可邮寄的类,那么你的pricequote mailable类应该是这样的:
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class pricequote extends Mailable
{
use Queueable, SerializesModels;
/**
* The data for the email instance.
*
* @var data
*/
protected $data;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($data)
{
$this->data = $data;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->view('yourview')
->with(['data' => $this->data]);
}
}
然后在您的控制器中,您可以发送如下电子邮件:
Mail::to("mail@email.com")->send(new pricequote($data));
Laravel 5.1 :
您可以选择要发送的视图,如下所示:
$params = array(
'name' => $name, //user's data
'email' => $email,
'phone' => $phone,
'data' => $data, //other stuffs in the form
);
Mail::send('view', $params, function($m){
$m->to($this->argument('to_email'));
});
第一个参数是视图,第二个参数是您希望在视图上访问的数据。
答案 1 :(得分:1)
你可以使用;
命名空间App \ Mail;
public function __construct($data)
{
$this->data = $data;
}
public function build()
{
return $this->view('emails.contacts')
->with(['data' => $this->data]);
}