浏览器:
无法找到指定的类: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));
}
}
答案 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}}