2017-08-14 117 views
2

在我的项目中有人填写价格表后,我想为他/她发送一封电子邮件。在控制器中,我创建了一个数组,并将其传递给邮件,以便在邮件中显示。Laravel:将数组从控制器传递给邮件::到

如果我现在是:

$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)); 

而在这之后如何从可邮寄类模板传递?

+0

对不起,我忘了补充:5.4 – Feralheart

+0

更新我的L5.4答案。 – Troyer

回答

1

您可以使用;

namespace App \ Mail;

public function __construct($data) 
{ 
    $this->data = $data; 
} 

public function build() 
{ 
    return $this->view('emails.contacts') 
     ->with(['data' => $this->data]); 
} 
+0

谢谢,它工作:) – Feralheart

1

我猜想pricequote是可邮寄类,那么你的pricequote可邮寄类应该是这样的:

<?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("[email protected]")->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')); 

}); 

第一个参数是视图,第二个参数是要在视图上访问的数据。

+0

谢谢,它工作:) – Feralheart

相关问题