1
Laravel 5.4で簡単な連絡フォームを使って自分宛にEメールを送信しようとしています。Laravel 5.4 Mail、passing data
私のフォームは、4つの入力:Nom、プレノム、電子メール、メッセージです。 私はちょうどこれが私のコントローラである
私のメールテンプレートにデータを電子メールで送信したい:
$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を初めてご利用いただきありがとうございます。
私はMailファサードを使用してから1分です。しかし、私はあなたの問題だと思う: 'Mail :: to( 'myadress') - > send(new Contact($ data));'私はsend(..)が文字列を予期し、モデルを渡していると思う。 – devk
ドキュメントには次のものがあります。https://laravel.com/docs/5.4/mail#sending-mail – Znne
大丈夫です。私が気にしていなかったのは、マークダウンクラスを生成するための 'php artisan make:mail'があることを知らなかったからです。あなたがモデルを渡していると思いました(DBモデルのように)。 – devk