未捕获的错误:将 laravel 5.8 升级到 8 后调用未定义的函数 Illuminate\Mail\TransportManager()

Posted

技术标签:

【中文标题】未捕获的错误:将 laravel 5.8 升级到 8 后调用未定义的函数 Illuminate\\Mail\\TransportManager()【英文标题】:Uncaught Error: Call to undefined function Illuminate\Mail\TransportManager() after upgrading laravel 5.8 to 8未捕获的错误:将 laravel 5.8 升级到 8 后调用未定义的函数 Illuminate\Mail\TransportManager() 【发布时间】:2021-10-16 17:11:30 【问题描述】:

当我将 Laravel 5.8 升级到 8 时,我在作曲家更新时在 handler.php 中给出错误调用未定义函数 Illuminate\Mail\TransportManager() 如何解决这些问题,请帮助..

public function report(Throwable $exception) 

    Config::set('mail.driver', 'smtp');
    Config::set('mail.port', 587);
    Config::set('mail.host', 'mail.ccc.com');
    Config::set('mail.username','test@gmail.com');
    Config::set('mail.password','UKK(a^#~Fr[');
    Config::set('mail.from.address','error-reporting@gmail.com');
    Config::set('mail.from.name','test');
    Config::set('mail.encryption','tls');
    $app = \App::getInstance();

    $app->singleton('swift.transport', function ($app) 
        return \Illuminate\Mail\TransportManager($app);
    );

    $mailer = new \Swift_Mailer($app['swift.transport']->driver());
    \Mail::setSwiftMailer($mailer);

   if (!$exception instanceof TokenMismatchException) 
       if (!$this->isHttpException($exception)) 
           if ($exception->getMessage() != 'Unauthenticated.') 
               $handler = new SymfonyExceptionHandler();
               $exceptionhtml = $handler->getHtml($exception);
               $subject = 'Error Reporting : ' . $exception->getMessage();
                $cc = 'testmail@gmail.com';
                $to = 'testmail@gmail.com';

                $data = array('msg'=>$exceptionHtml);
               
                 $ss = \Mail::send('email.error-reporting-message', $data, function ($message) use ($to,$cc,$subject)
                             
                                 $message->to($to, 'Test')
                                         ->cc($cc, 'Test')
                                         ->subject($subject);
                             );
                
           
       
   
    parent::report($exception);

【问题讨论】:

该类在 Laravel 8 中不再存在。您可能可以使用当前内置的 Mail 函数完成所有这些操作。 【参考方案1】:

您的应用正在引用自 Laravel 6 以来不存在的旧类。您应该考虑将其简化为仅使用 Mail。这应该做你需要的一切。反正大部分你已经拥有了。

【讨论】:

so 如何在 laravel 8 中传递异常请指导我..

以上是关于未捕获的错误:将 laravel 5.8 升级到 8 后调用未定义的函数 Illuminate\Mail\TransportManager()的主要内容,如果未能解决你的问题,请参考以下文章

PHP 致命错误:未捕获的错误:使用 Laravel 5.8 和 PHP 7.4 调用未定义函数 Whoops\Exception\xdebug_is_enabled()

Laravel 5.8 到 6.x 升级错误 - App\Exceptions\Handler::renderHttpException 声明

从 Laravel 5.1 升级到 Laravel 5.8 后 whereHas() 变慢

Laravel 从 5.5 升级到 5.6 到 5.7:未捕获 ReferenceError: axios is not defined

从 Laravel 5.8 升级到 6.2 后 ConfirmPasswordController 不存在

未找到 Laravel 5.8 自定义命令