无法找到指定的类:Codeigniter中的Session.php

时间:2015-04-24 08:05:10

标签: php codeigniter model

浏览器:

无法找到指定的类:Session.php

这是我的控制器:

<?php

class Chat extends CI_Controller {

    public function __construct() {

        parent::__construct();
        $this->load->model('Chat_model');
    }

    public function index() {

        $this->view_data['chat_id'] = 1;
        $this->view_data['student_id'] = $this->session->userdata('student_id');
        $this->view_data['page_content'] = 'chat';
        $this->load->view('chat');
    }

    public function ajax_addChatMessage() {

        $chat_id = $this->input->post('chat_id');
        $student_id = $this->input->post('student_id');
        $bericht = $this->input->post('chat_id', TRUE);

        $this->Chat_model->addChatMessage($chat_id, $student_id, $bericht);
    }
}

当我将我的模型放在parent::__construct(); // $this->load->model('Chat_model');的评论中时,错误就消失了。

这是我的Chat_model:

<?php

class Chat_model extends CI_Controller {

    public function Chat_model() {
        parent::__construct();
    }

    public function addChatMessage($chat_id, $student_id, $bericht) {

        $query = "INSERT INTO tbl_chatberichten (chat_id, student_id, bericht) VALUES (?,?,?)";
        $this->db->query($query, array($chat_id, $student_id, $bericht));

    }

}

12 个答案:

答案 0 :(得分:16)

class Chat_model extends CI_Controller

应该是

class Chat_model extends CI_Model

答案 1 :(得分:12)

如果您使用Codeigniter Modular Extensions HMVC,如果您忘记更改类以扩展MX_Controller而不是CI_Controller,则会发生此错误

因此,在您的情况下,您可以通过以下方式开始上课:

[{
    "PROPERTY1": "2396",
    "data":[{
        "PROPERTY2": "xyz001",
        "reg_date": null,
        "object": 2396,
        "rating": 3,
        "mod_date": "2008-11-17",
        "comment": "",
        "username": "xyz001"
    },{...}]

}
,{...}]

而不是:

class Chat extends MX_Controller {}

希望这可以帮助遇到同样问题的人

答案 2 :(得分:3)

在application / config / autoload.php文件中添加对库配置的更改

$autoload['libraries'] = array('database', 'session');

并在application / config / config.php中设置加密密钥(任何你喜欢的密钥)

$config['encryption_key'] = 'thu23456789#[n,';
  

如果仍然出现相同的错误,请复制   系统/库/ Session / Session.php到System / library /文件夹,然后呢   应该工作

答案 3 :(得分:2)

我的解决方案: 前言:如果您不使用挂钩,这将不适合您。

在升级到v3.0.6后,我遇到了同样的问题,我确实已经正确设置了所有内容,因为这是一个刚刚升级到v3 +的现有网站。我的问题归结为我已加载&#39;预控制器&#39;。我的钩子与CodeIgniter的v 2.0.X一起使用,但不与v3 +一起使用。

如果你在加载会话类之前加载钩子,并且你的钩子对会话类有依赖性,那可能是你的罪魁祸首。尝试将任何预控制器挂钩更改为后置控制器,或将其完全注释掉以查看是否可以解决您的问题。这都位于application / config / hooks.php。

答案 4 :(得分:1)

我遇到了同样的错误。我在--->上附加了“会话” yourproject / application / config / autoload.php

$autoload['drivers'] = array("session");

答案 5 :(得分:0)

application/config/autoload.php文件

中更改加载库配置
  $autoload['libraries'] = array('database', 'session');

application/config/config.php中设置加密密钥(任何你喜欢的密钥)

  $config['encryption_key'] = 'thu23456789#[n,';

答案 6 :(得分:0)

添加此而不是您的聊天控制器构造函数

TEdit2

这会将会话库加载到您的控制器,以便您可以使用这些方法。

答案 7 :(得分:0)

模型扩展CI_Model而不是CI_Controller class Chat_model扩展CI_Model { ............. }

答案 8 :(得分:0)

在您的Chat_model中,尝试将class Chat_model extends CI_Controller更改为class Chat_model extends CI_Model

答案 9 :(得分:0)

如果以上解决方案均无效,则我的解决方法是:

在自动加载配置中,我有一个名为“ auth”的库。

但是,在我的自定义控制器中,由于未自动加载'auth'而被搞砸了(我检查了所有内容)。由于我仅在登录时使用它,因此将其从自动加载配置中删除,并将其加载到自定义控制器中。

我以前从未遇到过这个问题,但是突然有一天发生了。

使用[CodeIgniter v3]

答案 10 :(得分:0)

这个问题已经存在了很长时间,并且已经找到了解决方案,所以我只是分享了类似案例的经验。

当我涉及类名称为 Pdf.php 的PDF库并通过autoload作为'pdf'加载它时,会收到相同的错误消息。

我的错误,将显示我的页面的控制器也命名为 Pdf.php ,并且出现错误消息(这就是我发现此问题的原因:))。我将控制器的名称替换为另一个名称后,该问题立即得到解决。

希望这有用

答案 11 :(得分:-2)

修改application / config / autoload.php文件中的库配置

$config['encryption_key'] = 'sdjfkdjkfj';

在application / config / config.php

中设置应用程序的加密密钥
$this->ci_session

将system / libararies / Session / Session.php复制到application / libraries / 将application / libraries / Session.php重命名为CI_Session.php

现在,CI_Session对象将通过以下行

{{1}}