Laravel在非对象上调用成员函数send()

时间:2017-03-26 00:20:53

标签: php laravel-5

我正在尝试使用我的laravel控制器发送邮件,这是一个非常简单的邮件,在我的localhost中发送没有任何问题但是一旦在服务器中我收到此错误:

20170325T153701: /public/index.php 
PHP Fatal error:  Call to a member function send() on a non-object in /public/index.php on line 56 
PHP Fatal error:  Call to a member function send() on a non-object in /vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php on line 107 

浏览器只显示500错误,错误只出现在我的错误日志中。这是用于发送邮件的代码

    use Illuminate\Support\Facades\Mail; // just to say I'm calling it
    $v_code = str_random(30);
    $mail_content = array('code' => $v_code);


    $user = User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => bcrypt($data['pass']),
    ]);

    if ($user) {
        Mail::send('User::mail.verifyMail', $mail_content, function ($message) use ($data) {
            $message->to($data['email'], $data['name'])
                ->subject('Verify your email address');
        });

2 个答案:

答案 0 :(得分:0)

删除use行。

\Mail::send('User::mail.verifyMail', $mail_content, function ($message) use ($data) {
      $message->to($data['email'], $data['name'])
              ->subject('Verify your email address');
});

答案 1 :(得分:0)

解决方案是使用(字符串)转换$ name。我不知道为什么,但只要名称包含空格(''),它就会失败并且$ name被视为null。因此,(字符串)解决了这个问题。