I am trying to pass non-model data to my email blade. I however keep getting this error.
Cannot unpack array with string keys
I have tried using the following post but didn't get to resolve the issue I am having.
Here is my controller:
$data = ['email'=> $email, 'token'=> $token, 'name'=> $name];
sendMailWithMailerClass($email, '\App\Mail\ApplicantSetPasswordMail', $data);
...
function sendMailWithMailerClass($mailTo, $mailerClass, $mailerClassParams)
{
try{
Mail::to($mailTo)->send(new $mailerClass(...$mailerClassParams));
} catch (Exception $e) {
}
}
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class ApplicantSetPasswordMail extends Mailable
{
use Queueable, SerializesModels;
public $data;
public function __construct($data)
{
$this->data = $data;
}
public function build()
{
return $this->markdown('emails.applicant_set_password', compact('data'));
}
}
Here is my email view:
<!DOCTYPE html>
<html lang="en" >
<head>
</head>
<body >
<center>
<p>Dear {{ $data['name'] }},</p>
<p style="margin-bottom: 25px;">Text</p>
<a href="{{ URL::to('/').'/url/?email='.$data['email'].'&token='.$data['token'] }}" >Set Password</a>
</center>
</body>
</html>