2017-03-26 111 views
0

我试图用我的laravel控制器,这是在我的本地主机发送,没有任何问题,但一旦在服务器我得到这个错误很简单的邮件发送邮件:Laravel调用一个成员函数的send()一个非对象

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'); 
     }); 
+0

可能是一个愚蠢的问题,而是:你安装过的作曲家所有的依赖? – ArSeN

+0

阿尔森是的,当然,作曲家安装,作曲家更新和翻斗自动加载:) –

+0

和说,这个工程对当地会这么如何是没有安装:) –

回答

0

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

0

删除那条use行。

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

我将如何访问电子邮件,姓名等如果我删除使用..这是一个基本的PHP“使用”的方法..... –

+0

我已经使用了'\'在Mail'的'前 –

相关问题