Level 18
It's pretty ok except your $datain your controller isn't used so you can delete it.
// either this
function sponsorLetterPost(Request $request)
{
Mail::to('[email protected]')
->send(new \App\Mail\SponsorLetter(
$request->input('name'),
$request->input('email'),
$request->input('smessage'),
$request->input('subject'),
$request->input('child_cin'),
$request->input('child_name'),
$request->input('child_age'),
$request->input('child_gender'),
$request->input('child_location')
));
return back()->with('success','Your letter has been sent.');
}
// or this
// Controller
function sponsorLetterPost(Request $request)
{
$data = array(
'name' =>Purifier::clean($request->name),
'email' =>Purifier::clean($request->email),
'smessage' =>Purifier::clean($request->smessage),
'subject' =>$request->subject,
'child_cin' =>$request->child_cin,
'child_name' =>$request->child_name,
'child_age' =>$request->child_age,
'child_gender' =>$request->child_gender,
'child_location' =>$request->child_location,
);
Mail::to('[email protected]')
->send(new \App\Mail\SponsorLetter($data));
return back()->with('success','Your letter has been sent.');
}
// Mailable
class SponsorLetter extends Mailable
{
use Queueable, SerializesModels;
public $name;
public $email;
public $smessage;
public $subject;
public $child_cin;
public $child_name;
public $child_age;
public $child_gender;
public $child_location;
public function __construct( $data )
{
[
$this->name,
$this->email,
$this->smessage,
$this->subject,
$this->child_cin,
$this->child_name,
$this->child_age,
$this->child_gender,
$this->child_location
] = $data;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->markdown('emails.staff.sponsorletter');
}
}