mXX*_*mXX 27 php email undefined laravel laravel-4
我正在尝试通过Laravel发送电子邮件,但我收到此错误:
未定义的变量:contactEmail
即使它已在上面定义.这里出了什么问题?
调节器
$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('info@aallouch.com', 'myName')->subject('Mail via aallouch.com');
});
Run Code Online (Sandbox Code Playgroud)
编辑:
template.mail
Name: {{$name}}
Email: {{$email}}
Message:{{$message}}
Run Code Online (Sandbox Code Playgroud)
Ant*_*iro 74
由于您的$ data变量定义为:
$data = array(
'name'=>$contactName,
'email'=>$contactEmail,
'message'=>$contactMessage
);
Run Code Online (Sandbox Code Playgroud)
您的视图中没有可用的$数据,但您可以直接使用:
{{ $name }}
{{ $email }}
{{ $message }}
Run Code Online (Sandbox Code Playgroud)
编辑:
你的控制器应该有:
$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('info@aallouch.com', 'myName')->subject('Mail via aallouch.com');
});
Run Code Online (Sandbox Code Playgroud)
您必须使用将变量传递给闭包
use ($contactEmail, $contactName)
Run Code Online (Sandbox Code Playgroud)
如上图所示.
我遇到了这个错误,我已经解决了。我已经用$data替换了$message关键字$comment。
下面的例子:
$data = array('name' => 'vikas', 'message' => 'test message');
Run Code Online (Sandbox Code Playgroud)
看法
{{ $name }}
{{ $message }}
Run Code Online (Sandbox Code Playgroud)
出错了
$data = array('name' => 'vikas', 'comment' => 'test message');
{{ $name }}
{{ $comment }}
Run Code Online (Sandbox Code Playgroud)
现在它工作正常。