大家好,我发送电子邮件时,我在laravel中有错误。 我有一个带有select标签的表单 当我选择用户并单击提交时,我需要在选择后向他发送邮件。
这是我的Controller方法:
public function store()
{
$customerId = Input::get('customerid');
$invoice = New Invoice ;
$invoice->customerid = Input::get('customerid');
$invoice->save();
if($invoice->save()){
$email = Customer::whereRaw(' id = :customer',array('customer'=> $customerId ))->first(array('email'));
Mail::send('invoices.mail', array($pinvoices,$unpinvoices), function($message){
$message->to($email , 'Name')->subject('your invoices ');
});
}
}
当我点击提交时出现错误:
未定义的变量:电子邮件
当我尝试将我的电子邮件添加为静态值时,如:
$email = "myemail@mail.com" ;
Mail::send('invoices.mail', array($pinvoices,$unpinvoices), function($message){
$message->to($email , 'Name')->subject('your invoices ');
});
它也得到了同样的错误!!
当我把这个值放在这样的时候:
Mail::send('invoices.mail', array($pinvoices,$unpinvoices), function($message){
$message->to("myemail@mail.com" , 'Name')->subject('your invoices ');
});
它完美无缺!
答案 0 :(得分:1)
闭包的工作方式与常规功能相同。您需要将外部范围变量注入函数的范围。
Mail::send('invoices.mail', array($pinvoices,$unpinvoices), function($message) use ($email)
{
$message->to($email , 'Name')->subject('your invoices ');
});
答案 1 :(得分:0)
您应该在函数
中传递$email
参数
$email = "myemail@mail.com" ;
Mail::send('invoices.mail', array('email'=>$email, $pinvoices,$unpinvoices), function($message){
$message->to($email , 'Name')->subject('your invoices ');
});