【问题标题】:codeigniter 2.0.3-Fatal errorcodeigniter 2.0.3-致命错误
【发布时间】:2014-10-22 11:54:31
【问题描述】:

我是 codeigniter 的新手,我尝试了其中一个教程的课程,但它引发了以下错误:

Class 'Controller' not found in 
C:\xampp\htdocs\CodeIgniter\application\controllers\email.php 
on line 3

我的代码:

<?php

class Email extends Controller{
    function __construct()
    {
        parent::Controller();
    }

    function index()
    {
        $config = Array(
            'protocol' => 'smtp',
            'smtp_host' => 'ssl://smtp.googlemail.com',
            'smtp_port' => 465,
            'username' => 'saveniroj@gmail.com',
            'password' => 'password' 
        );

        $this->load->library('email', $config);
        $this->email->set_newline("\r\n");

        $this->email->from('saveniroj@gmail.com', 'Niroj Shakya');
        $this->email->to('saveniroj@gmail.com');
        $this->email->subject('This is a test email');
        $this->email->message('Oops This is Great.');

        if($this->email->send())
        {
            echo 'Your email was sent, FOOL';       
        }

        else
        {
            show_error($this->email->print_debugger());
        }
    }
}   

?>

有什么问题?

【问题讨论】:

标签: php codeigniter


【解决方案1】:

将类定义改为

class Email extends CI_Controller {

__construct函数中

parent::CI_Controller();

在 CodeIgniter 2 中,默认控制器是 CI_Controller,默认模型是 CI_Model,而在 CodeIgniter 1 中它们只是控制器和模型。

【讨论】:

  • 致命错误:在第 6 行调用 C:\xampp\htdocs\CodeIgniter\application\controllers\email.php 中未定义的方法 CI_Controller::Controller()
  • 啊,是的。将该行更改为parent::CI_Controller(); - 它需要与您正在扩展的类的名称匹配:)
  • 值得一提的是,您不需要为控制器定义构造函数,除非您要添加一些自定义功能。而在模型中,您需要这样做。
【解决方案2】:

实际上parent::CI_Controller(); 需要是parent::__construct();。除非您使用的是 PHP 5.1.x,否则 PHP 将出现致命错误,我相信如果它丢失,它将别名为 PHP 4 样式。

【讨论】:

    猜你喜欢
    • 2014-02-15
    • 1970-01-01
    • 2011-11-14
    • 2016-06-08
    • 1970-01-01
    • 2013-09-20
    • 2018-10-31
    • 2013-02-18
    • 1970-01-01
    相关资源
    最近更新 更多