Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 未定义变量-laravel电子邮件发送_Php_Laravel_Email - Fatal编程技术网

Php 未定义变量-laravel电子邮件发送

Php 未定义变量-laravel电子邮件发送,php,laravel,email,Php,Laravel,Email,我正在尝试使用laravel发送电子邮件。这适用于多个函数,但在这个函数中,我得到了一个奇怪的错误 这是我正在使用的代码 $offerte = DB::table('offertes') ->select('*') ->where('id', '=', $offerte_id) ->get(); Mail::send('emails.offerte_reactie', ['offerte' => $offe

我正在尝试使用laravel发送电子邮件。这适用于多个函数,但在这个函数中,我得到了一个奇怪的错误

这是我正在使用的代码

    $offerte = DB::table('offertes')
        ->select('*')
        ->where('id', '=', $offerte_id)
        ->get();

    Mail::send('emails.offerte_reactie', ['offerte' => $offerte, 'user' => $user, 'message_text' => $message_text], function ($message) use ($user)
    {
        $message->from($user->email, 'Foodtruckbestellen.be');
        $message->to($offerte->email);
        $message->subject('Reactie offerte Foodtruckbestellen.be');
    });
然而,当我想发送邮件时,我得到了一个错误

未定义变量:offerte


$message->to($offerte->email)在PHPSTORM中确实以红色下划线,我在电子邮件中不使用该变量。因此,我确信这就是我的错误所在,我只是找不到解决方法。

您需要将
$offerte
变量传递给closure,因为它不在closure范围内定义

只需使用
$offerte
变量,就像使用
$user
一样

Mail::send('emails.offerte_reactie', ['offerte' => $offerte, 'user' => $user, 'message_text' => $message_text], function ($message) use ($user, $offerte)
{
    $message->from($user->email, 'Foodtruckbestellen.be');
    $message->to($offerte->email);
    $message->subject('Reactie offerte Foodtruckbestellen.be');
});
此外,如果我是您,我会使用传递给send函数第二个参数的数组来编写更干净的代码

Mail::send('emails.offerte_reactie', compact('offerte', 'user', 'message_text'), function ($message) use ($user, $offerte)
{
    $message->from($user->email, 'Foodtruckbestellen.be');
    $message->to($offerte->email);
    $message->subject('Reactie offerte Foodtruckbestellen.be');
});

您应该添加变量$offerte以使用如下函数:

    Mail::send('emails.offerte_reactie', ['offerte' => $offerte, 'user' => $user, 'message_text' => $message_text], function ($message) use ($user,$offerte)

您忘记写入$offerte变量

Mail::send('emails.offerte_reactie', ['offerte' => $offerte, 'user' => $user, 'message_text' => $message_text], function ($message) use ($user, $offerte)

看起来你没有从数据库中返回任何东西。您是否检查了sql语句本身并确保id存在?