Codeigniter中错误的含义:"致命错误:无法重新声明类My_connection模型"

时间:2014-12-10 04:39:26

标签: php codeigniter

  

致命错误:无法在第38行的C:\ wamp \ www \ mvc \ smsc \ application \ models \ my_connection.php中重新声明类My_connection

我创建了一个模型My_connection。我将此方法调用到我的控制器的构造函数中。 每个错误都有意义。这个错误背后的原因是什么? 请告诉错误的含义。可能是什么原因。我已经宣读了与此有关的许多问题。所有问题和答案都有所不同。他们试图纠正代码。我想知道原因。 请帮助相关问题。

<?php
class My_connection extends CI_Model{
public function __construct(){
    parent::__construct();
}

public function is_connected(){
    $session_id=$this->session->userdata('session_id');
    $session_username=$this->session->userdata('username');
    $session_password=$this->session->userdata('password');
    $this->db->select('session_id');
    $this->db->from('ci_sessions');
    $this->db->where('session_id',$session_id);
    $ses_query=$this->db->get();
    if($ses_query->num_rows>0){
    foreach($ses_query->rows as $row){
    $session_db_id=$ses_query->row();   
    }
    }
    $this->db->select('username','password');
    $this->db->from('users');
    $this->db->where('username',$session_username);
    $user_query=$this->db->get();
    if($user_query->num_rows()>0){
    foreach($user_query->result() as $row){
    $password=$row->password;
    $username=$row->username;   
    }
    }

    if( md5($password)==$session_password AND $username==$session_username AND  $session_db_id==$session_id){
        return TRUE;
    }
    else {
        return FALSE;
    }`enter code here`
}
}
/**
* End of file my_connection.php
* Location: application/models/my_connection.php
*/`

最后一行是38.根据错误。我没理解解决它。

2 个答案:

答案 0 :(得分:3)

错误消息很明确:您无法声明具有已在您的应用中使用的名称的新类。

我曾经为我的模型添加了一个前缀(例如:My_connection_model)以避免这些错误。

答案 1 :(得分:0)

我遇到了上述问题。现在,我已经解决了。解决方案很愚蠢。但是,它的工作原理。实际上,造成这种错误的原因是:

  • 当它与自己的核心类冲突时
  • 何时,您的控制器类和模型类具有相同的名称。虽然,这不是绝对的原因。因为,我运行了很多这样的程序。那时,它没有显示任何错误。在尝试加载时更改某些配置。它给出了错误。我通过为控制器类和模型类指定不同的名称来解决我的错误。

避免这个问题。

  • 为控制器和模型类使用不同的前缀。类似于控制器的Myc_或模型的Mym_。
  

注意:这不是完整的答案。我认为,这种解释还不足以清除错误的含义。如果有人对此错误有不同的解决方案或含义。请分享您的解决方案。