J'essaye d'envoyer un email par Laravel, mais j'obtiens cette erreur:
Variable non définie: contactEmail
Même si cela a été défini ci-dessus. Qu'est-ce qui ne va pas ici?
Manette
$contactName = Input::get('name');
$contactEmail = Input::get('email');
$contactMessage = Input::get('message');
$data = array('name'=>$contactName, 'email'=>$contactEmail, 'message'=>$contactMessage);
Mail::send('template.mail', $data, function($message)
{
$message->from($contactEmail, $contactName);
$message->to('[email protected]', 'myName')->subject('Mail via aallouch.com');
});
MODIFIER:
template.mail
Name: {{$name}}
Email: {{$email}}
Message:{{$message}}
Comme votre variable $ data est définie comme:
$data = array(
'name'=>$contactName,
'email'=>$contactEmail,
'message'=>$contactMessage
);
Vous n’avez pas de données $ disponibles dans votre vue, mais vous pouvez utiliser directement:
{{ $name }}
{{ $email }}
{{ $message }}
MODIFIER:
Et votre contrôleur devrait avoir:
$contactName = Input::get('name');
$contactEmail = Input::get('email');
$contactMessage = Input::get('message');
$data = array('name'=>$contactName, 'email'=>$contactEmail, 'message'=>$contactMessage);
Mail::send('template.mail', $data, function($message) use ($contactEmail, $contactName)
{
$message->from($contactEmail, $contactName);
$message->to('[email protected]', 'myName')->subject('Mail via aallouch.com');
});
Vous devez passer vos variables à la clôture en utilisant
use ($contactEmail, $contactName)
Comme montré ci-dessus.
J'ai eu cette erreur et je l'ai résolue. J'ai remplacer le mot clé $message
par $comment
à partir de $ data.
Exemple ci-dessous:
$data = array('name' => 'vikas', 'message' => 'test message');
vue
{{ $name }}
{{ $message }}
Ça devient une erreur
$data = array('name' => 'vikas', 'comment' => 'test message');
{{ $name }}
{{ $comment }}
Maintenant ça fonctionne bien.
Si vous regardez code source vous verrez cette ligne:
$data['message'] = $message = $this->createMessage();
Ainsi, votre champ message
est écrasé par cette ligne. Utilisez un autre nom pour le champ, comme text
ou comment
.