2017-03-07 92 views
1

我試圖通過Laravel 5.4中的簡單聯繫表單向我發送電子郵件。Laravel 5.4郵件,傳遞數據

我的表單是4個輸入:Nom,prenom,電子郵件和消息。 我只是想發送數據的電子郵件在我的郵件模板

這是我的控制器:

$this->validate($request, [ 
    'nom' => 'required|alpha', 
    'prenom' => 'required|alpha', 
    'email' => 'required|email', 
    'message' => 'required', 
    ]); 

    $data = [ 
     'nom' => $request->nom, 
     'prenom' => $request->prenom, 
     'email' => $request->email, 
     'message' => $request->message, 
    ]; 

    Mail::to('myadress')->send(new Contact($data)); 

這是我的「聯繫人」郵件:

public $data; 

public function __construct($data) 
{ 
    $this->nom = $data['nom']; 
    $this->prenom = $data['prenom']; 
    $this->email = $data['email']; 
    $this->message = $data['message']; 
} 

/** 
* Build the message. 
* 
* @return $this 
*/ 
public function build() 
{ 
    return $this->view('emails.hello')->with([ 
       'nom' => $this->nom, 
       'prenom' => $this->prenom, 
       'email' => $this->email, 
       'message' => $this->message, 
      ]); 
} 

這是我的郵件模板:

<!DOCTYPE html> 
 
<html lang="en-US"> 
 
<head> 
 
    <meta charset="utf-8"> 
 
</head> 
 
<body> 
 
<h2>Demande d'informations </h2> 
 

 
<div> 
 
    <p> 
 
     Vous recevez ce mail via le formulaire de contact du site . 
 
    </p> 
 
    <p> 
 
     Adresse mail du contact: {{ $email }} 
 
    </p> 
 
    <p> 
 
     Nom: {{ $nom }}/Prénom: {{ $prenom }} 
 
    </p> 
 
    <h3>Message du contact:</h3> 
 
    <p> 
 
     {{ $message }} 
 
    </p> 
 
</div> 
 

 
</body> 
 
</html>

我收到一條錯誤消息,說我無法將對象作爲字符串傳遞。 感謝您的幫助,這是我第一次使用Laravel Mail

+0

自從我使用郵件外觀以來,一分鐘過去了。但我認爲這是你的問題:'Mail :: to('myadress') - > send(new Contact($ data));'我認爲send(..)期望字符串,並且你傳遞給它一個模型。 – devk

+0

在文檔中,我們有這個:https://laravel.com/docs/5.4/mail#sending-mail – Znne

+0

哦,好的。沒想到我然後我不知道有'php artisan make:mail'來生成markdown類。我以爲你是通過一個模型(如在DB模型中)。 – devk

回答

4

所以!我發現我的問題:

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

然後:

public function build() 
{ 
    return $this->from('[email protected]', 'my site') 
    ->subject('hello you') 
    ->view('emails.hello')->with(['data', $this->data]); 
} 

在我的刀片文件:

Adresse mail du contact: {{ $data['email'] }} 

中庸之道,因爲我想在我看來,以顯示數組作爲對象... 所以我的壞!