【问题标题】:Laravel 'Undefined variable:' in User Controller用户控制器中的 Laravel '未定义变量:'
【发布时间】:2020-02-24 04:39:29
【问题描述】:

我想在用户注册我们的服务时发送感谢邮件。 但是,此代码在$message->to($fhbvuileb) 中是错误Undefined variable: fhbvuileb。 帮帮我!!!

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use App\User;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Crypt;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Mail;

class RegisterController extends Controller
{

  /** ~~~ **/

  protected function create(array $data)
  {

    $fhbvuileb = $data['email'];
    Mail::send('emails.user_register', ["message" => "Hello!"], function($message) {
      $message->to($fhbvuileb)
              ->subject("Thank you!!!");
    });
    return User::create([
      'name' => $data['name'],
      'email' => $data['email'],
      'password' => Hash::make($data['password']),
    ]);

  }
}

【问题讨论】:

标签: php laravel


【解决方案1】:

您需要在邮件回调函数中使用该变量。 您编写的内容称为闭包,因此该变量在闭包函数范围内不可用。

在 PHP 中有一个名为 use 的关键字,它使这个 $fhbvuileb 在函数内部。

$fhbvuileb = $data['email'];
    Mail::send('emails.user_register', ["message" => "Hello!"], function($message) use($fhbvuileb) {
      $message->to($fhbvuileb)
              ->subject("Thank you!!!");
    });

【讨论】:

    【解决方案2】:

    您忘记使用语言构造 use() 从父作用域传递任何参数

       Try this:
        Mail::send('emails.user_register', ["message" => "Hello!"], function($message) use($fhbvuileb) {
                  $message->to($fhbvuileb)
                          ->subject("Thank you!!!");
                });
    

    【讨论】:

    • 粘贴代码不是答案。请解释您的代码修复了什么。
    猜你喜欢
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-04
    • 1970-01-01
    • 2017-06-06
    相关资源
    最近更新 更多