为什么我的主控制器找不到codeIgniter

时间:2017-09-20 13:36:12

标签: php codeigniter frameworks

您好namespacecodeIgniter的问题。

我想做的是:

  1. 我已使用phpmailer

  2. 下载了composer
  3. 它有namespaces

  4.   

    使用PHPMailer \ PHPMailer \ PHPMailer;

         

    使用PHPMailer \ PHPMailer \ Exception;

    当我包含此namespace时,它会提供此error

      

    Class' Frontend_Controller'找不到

    这是我的控制器代码:

    无错误代码 - 此代码正常运行

    class Welcome extends Frontend_Controller {
       //my code goes here
    }
    

    此代码提供错误

     require "vendor/autoload.php";
    
     use PHPMailer\PHPMailer\PHPMailer;
    
     use PHPMailer\PHPMailer\Exception;
    
    class Welcome extends Frontend_Controller {
       // my code goes here....
    }
    

    我尝试了此链接,但是如果我将代码放入application\config\config.php

    ,则会出现同样的错误:https://gist.github.com/JeyKeu/7533af3b9b5fd078910d

    请提前帮助我

2 个答案:

答案 0 :(得分:0)

在config文件夹中创建一个文件email.php ...

<?php
    $config['protocol'] = 'smtp';
    $config['smtp_host'] = 'ssl://smtp.gmail.com'; 
    $config['smtp_port'] = '465';
    $config['smtp_user'] = 'youraccount@gmail.com'; 
    $config['smtp_pass'] = 'test@12#'; 
    $config['mailtype'] = 'html';
    $config['charset'] = 'iso-8859-1';
    $config['wordwrap'] = TRUE;
    $config['newline'] = "\r\n";
?>

并在主控制器......

    $params['mailtype'] = 'html';
    $params['subject'] = ' Something ';
    $this->email->set_mailtype("html");
    $this->email->from('info@test.co.in', 'Application name');
    $this->email->to('example@gmail.com');
    $this->email->subject($params['subject']);
    $this->email->message($this->load->view('your_view_page', $params, true));
    $this->email->send();

答案 1 :(得分:0)

CodeIgniter 2.x

在index.php中添加以下行

require "vendor/autoload.php";

现在在控制器内

use PHPMailer\PHPMailer\PHPMailer;

了解更多信息参考:https://stackoverflow.com/a/15244577/7296317

CodeIgniter 3.x

如果您希望CodeIgniter使用Composer auto-loader,只需将$config['composer_autoload']设置为TRUEapplication/config/config.php.

中的自定义路径

参考:https://www.codeigniter.com/user_guide/general/autoloader.html

并且在您要使用PHP邮件程序的文件顶部,可能需要以下内容:

use PHPMailer;