2017-03-07 2 views
1

Laravel 5.4의 간단한 문의 양식을 사용하여 본인에게 전자 메일을 보내려고합니다.Laravel 5.4 Mail, passing data

내 양식은 4 개의 입력입니다 : Nom, prenom, email 및 message. 난 그냥 내 메일 템플릿에 데이터를 이메일을 보내 싶은

이 내 컨트롤러 :

$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

메일 외관을 사용한 지 1 분이 지났습니다. 하지만 여기에 문제가 있다고 생각합니다 :'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'이 있다는 것을 몰랐다. DB 모델 에서처럼 Model을 전달하고 있다고 생각했습니다. – devk

답변

4

So! 내가보기에 객체로 배열을 표시하려고하기 때문에

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

Juste ... : 다음

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]); 
} 

나는 내 문제를 발견 내 잘못이야!