2017-08-14 118 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

相關問題