2015-06-22 215 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