在Laravel 4.2中发送电子邮件时出现错误

问题描述 投票:0回答:2

我在发送电子邮件时在Laravel中出错。

我有一个带有选择标签的表单,当我选择用户并单击提交时,我需要在选择后向他发送邮件。

这是我的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 = "[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 ');
        }); 

效果很好!

php email laravel laravel-4
2个回答
1
投票

闭包就像常规函数一样工作。您需要将外部作用域变量注入到函数的作用域中。

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

0
投票

您应该在函数中传递$email参数

$email = "[email protected]" ;
Mail::send('invoices.mail', array('email'=>$email, $pinvoices,$unpinvoices), function($message){
            $message->to($email , 'Name')->subject('your invoices ');
        }); 
© www.soinside.com 2019 - 2024. All rights reserved.