2017-03-07 65 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'] }} 

中庸之道,因为我想在我看来,以显示数组作为对象... 所以我的坏!