【问题标题】:undefined variable when trying to make sending mail function laravel become reusable尝试使发送邮件功能laravel变得可重用时未定义的变量
【发布时间】:2021-07-22 12:27:17
【问题描述】:

我正在使用 laravel 6。有几个使用邮件功能的控制器。我想创建一个函数,通过许多控制器将 laravel 中的邮件函数重用,这样我就可以在任何地方调用它

Utils::sendGmail($param, $param2)

Utils->sendGmail($param, $param2)

这是我到目前为止所做的(也通过谷歌搜索可能与我的案例相关的几个关键字):

<?php
namespace App\Http\Controllers;
use Mail;
class Utils {
    public function sendGmail($email, $data, $subject, $msgBlade) {
        global $myemail;
        $myemail = $email;
        $data = $data;
        $subject = $subject;
        $msgBlade = $msgBlade;
        Mail::send($msgBlade, $data, function($send) use ($data){
            $send->to($myemail)->subject($subject);
        });
    }
}

但返回以下错误:

ErrorException
Undefined variable: myemail

你能告诉我如何解决这个问题吗?谢谢。

【问题讨论】:

  • $myemail 未在匿名函数范围内定义 use ($data, $myemail).. 可能应该得到关于 $subject 的相同通知/错误

标签: php laravel-6


【解决方案1】:

$myemail 不在匿名函数的范围内。我们必须在函数中传递$myemail$subject。 (https://www.php.net/manual/en/functions.anonymous.php)

Mail::send($msgBlade, $data, function($send) use ($data, $myemail, $subject) {
  $send->to($myemail)->subject($subject);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 2022-11-04
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-24
    相关资源
    最近更新 更多