Laravel 4.2发送电子邮件错误

时间:2015-06-22 04:27:09

标签: php email laravel laravel-4

大家好,我发送电子邮件时,我在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 ');
        }); 
  

它完美无缺!

2 个答案:

答案 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 ');
        });