2015-06-22 194 views
0

大家好我在发送电子邮件时在laravel中遇到错误。 我有一个选择标记 的表单,当我选择用户并单击提交时,我需要在选择它后发送邮件给他。Laravel 4.2发送电子邮件错误

这里是我的控制器方法:

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 = "[email protected]" ; 
    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("[email protected]" , 'Name')->subject('your invoices '); 
     }); 

它完美的作品!

回答

1

瓶盖的工作就像一个普通的功能。你需要将你的外部作用域变量注入到函数的作用域中。

Mail::send('invoices.mail', array($pinvoices,$unpinvoices), function($message) use ($email) 
{ 
    $message->to($email , 'Name')->subject('your invoices '); 
}); 
+0

它的工作非常感谢:) – Muhammed

0

您应该通过$email参数的函数

$email = "[email protected]" ; 
Mail::send('invoices.mail', array('email'=>$email, $pinvoices,$unpinvoices), function($message){ 
      $message->to($email , 'Name')->subject('your invoices '); 
     }); 
+0

'邮件发送::( 'invoices.mail',阵列( '电子邮件'=> $电子邮件, 'pinvoices'=> $ pinvoices, 'unpinvoices'=> $ unpinvoices),功能($消息) ($ email,'Name') - > subject('your invoices');' **仍然未定义变量** – Muhammed

+0

例如,您可以将'$ email'放入会话中并获取该功能内的会话,并尝试使用它? –

+0

感谢sulthan帮助我得到它:) – Muhammed