我无法摆脱这个错误:Object of class Symfony\Bridge\Twig\Mime\WrappedTemplatedEmail could not be converted to string
我的设置:php 8.2symfony 6.2 mailer 6.2,我使用maildev
我想用ajax生成邮件发送。
我的服务:
use Symfony\Bridge\Twig\Mime\TemplatedEmail; use Symfony\Component\Mailer\MailerInterface;
public function send(string $from, string $to, string $subject, string $template, array $context): void
{
//$context2 = clean_input($context);
$email = (new TemplatedEmail())
->from($from)
->to($to)
->subject($subject)
->htmlTemplate("emails/$template.html.twig")
->context($context);
// On envoie le mail
$this->mailer->send($email);
}
如果我把->;context([$context])而不是->;context($context),在我的模板中,我得到了这个错误:没有变量“prenom”
我的控制器操作:
#[Route('/app_email', name: 'app_email', methods: ['POST'])]
public function sendEmail(Request $request, SendMailService $mail): Response
{
if ($request->isXmlHttpRequest()) {
$from = $this->getParameter('from_email');
$emailAdressTo = $request->request->get('email'); // To
$template = 'contact';
$subject = "Envoi à partir du formulaire de contact du site Vous assurance";
$nom = $request->request->get('nom');
$prenom = $request->request->get('prenom');
$entreprise = $request->request->get('entreprise');
$message = $request->request->get('message');
$context = array(
'nom' => $nom,
'prenom' => $prenom,
'entreprise' => $entreprise,
'message' => $message,
);
dump($from);
dump($emailAdressTo);
dump($subject);
dump($template);
dump(gettype($context));
$mail->send($from, $emailAdressTo, $subject, $template, $context);
return new Response("ok");
}
return new Response("Erreur : ceci n'est pas une requête ajax", 400);
}
如果我注释掉$context变量,我的电子邮件将被发送
我的ajax函数:
var formNewContact = $('form[id="formContact"]');
formNewContact.on("submit", function (e) {
e.preventDefault();
var formData = new FormData($(this)[0]);
$.ajax({
method: "POST",
url: "{{ path('app_email') }}",
data: formData,
processData: false,
contentType: false,
success: function (response) {
if (response === 'ok') {
} else {
alert("Erreur");
}
}, // Fin success
error: function () {
alert("Erreur serveur");
}, // Fin error
}); // Fin ajax
}); // Fin function submit form contact
我的模板:
<p>Bonjour,</p>
<p><strong>De : </strong>{{ prenom }}<strong>{{ nom }}</strong>.</p>
<p><strong>Email : </strong>{{ email }}</p>
<p><strong>Entreprise : </strong>{{ entreprise }}</p>
<p><strong>Message :</strong></p>
<hr />
<p>{{message}}</p>
<hr />
</div>
转储(gettype($context))->;大堆
谢谢你的帮助。