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


Meaning of error in Codeigniter : "Fatal error: Cannot redeclare class My_connection model"

致命错误:无法在第 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。根据错误。我不明白要解决它。

错误消息很明确:不能使用应用中已使用的名称声明新类。

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

我遇到了上述问题。现在,我已经解决了它。解决方案是愚蠢的。但是,它有效。实际上,创建此类错误的原因:

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

以避免问题。

  • 对控制器和模型类使用不同的前缀。就像控制器的Myc_或模型的Mym_一样。

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