流明中的未定义变量

Undefined variable in Lumen

我将在 lumen 中使用 gmail smtp 发送电子邮件,一切正常,但一个变量始终未定义,请告诉我哪里错了

这是我的代码

<?php

namespace App\Services;
use Illuminate\Support\Facades\Mail;

class MailService
{

    public static function send($mail_to = '', $title = '', $content = '') {
        Mail::send('mail', ['title' => $title, 'content' => $content], function ($message) {
            $message->from('noreply@gmail.com', 'Test Mail');
            $message->to($mail_to);
        });
    }
}

这是控制器

public function register(Request $request)
{

    $rules = [
        'name'          => 'required',
        'email'         => 'required|email|unique:users',
        'password'      => 'required|min:5',
        'phone'         => 'required|numeric|min:10',
        'business_name' => 'required|unique:users',
        'business_type' => 'required'
    ];

    $this->validate($request, $rules);

    $data = $request->all();
    $hashPassword = Hash::make($data['password']);

    $data['password'] = $hashPassword;
    $data['is_activated'] = 'false';

    $pin    = mt_rand(1000, 9999); 
    $token  = hash("sha256", $pin);

    $data['token']  = $token;
    $data['otp']    = $pin;

    $user = User::create($data);

    if ($user) {
        MailService::send($request->input('email'), 'OTP', $pin);
        return response()->json(['response' => true, 'message' => 'User registered Successfully', 'token' => $token], 201);
    } else {
        return response()->json(['response' => false, 'message' => ' Please check your credentials, Try again'], 400);
    }
}

这里是错误

{message: "Undefined variable: mail_to", exception: "ErrorException", file: "D:\xampp\htdocs\api\app\Services\MailService.php", line: 12, trace: Array(28)}

exception: "ErrorException"

file: "D:\xampp\htdocs\api\app\Services\MailService.php" line: 12 message: "Undefined variable: mail_to"

你不见了$mail_to。你需要在函数中使用它然后你可以使用它否则你会得到一个未定义的变量错误,因为你现在得到它。

use($mail_to)

您的代码如下所示。

public static function send($mail_to = '', $title = '', $content = '') {
    Mail::send('mail', ['title' => $title, 'content' => $content], function ($message) use($mail_to) {
        $message->from('noreply@gmail.com', 'Test Mail');
        $message->to($mail_to);
    });
}