无法在laravel 5 app中发送电子邮件

时间:2016-06-27 15:44:13

标签: laravel-5 laravel-5.1

您好我有一个laravel 5应用程序,它在当地环境中运行良好。但是在生产中,电子邮件没有被发送,而是我得到以下例外:

1/1 FatalErrorException in AstAnalyzer.php line 125:
    Cannot instantiate interface PhpParser\Parser

Path to file: /vendor/jeremeamia/SuperClosure/src/Analyzer/AstAnalyzer.php line 125

我不明白,因为我现在在本地测试相同的功能并且正在工作。应用程序的每个其他路径都在工作,除了这个。

以下是功能:

public function update_password(Request $request, $id)
    {
        $this->validate($request, [
            'new_password' => 'required|confirmed|min:6',
            'new_password_confirmation' => 'required',
        ]);

        $user = $this->user->get_user_by_id($id);
        $password = $request->get('new_password');
        $this->user->save_password($password, $id);

        // Send an email informing user that we have updated his password.
        Mail::queue('emails.password_update', ['user' => $user, 'password' => $password], function($message) use ($user){
            $message->to($user->email, $user->name)->subject('Account Password Updated');
        });
        $target_location = 'users/'. $id. '/profile';
        flash()->success('Password Updated Successfully');
        return redirect($target_location);
    }

1 个答案:

答案 0 :(得分:0)

我终于解决了我的问题。我运行了composer update,它安装了最新版本的nikic/php-parser,同样安装了最新版本jeremeamia/superclosure,但不知何故,正式用于nickic包的class Parser现在是一个接口。 class Multiple现在正在实施界面。因此,在jeremeamia包中的AstAnalyzer.php中,没有进行更改,而是使用了use PhpParser\Parser as CodeParser;,这是合乎逻辑的,因为除非完成某些绑定,否则无法实例化接口。所以作为一个快速修复,我使用了以前版本的nikic / php-parser。