【发布时间】:2026-02-03 18:30:02
【问题描述】:
我在 Codeigniter 核心类中创建一个类的对象,我将在我的控制器中扩展它,但在创建对象后加载模型似乎存在问题。这就是我所做的
核心文件:
require_once('folder/systemize.php'); // class systemize is in this file
class MY_Controller extends CI_Controller {
function __construct()
{
parent::__construct();
$systemize = new systemize();
$systemize->init();
}
此对象初始化后,加载模型将不起作用
扩展 MY_Controller 的控制器文件
class Log extends MY_Controller
{
function __construct()
{
parent::__construct();
$this->load->model('access_model', 'TEST');
$this->TEST->foo('param1', 'param2'); //function inside access_model
}
它会给我这些错误 遇到 PHP 错误
严重性:通知消息:未定义属性:Log::$TEST
致命错误:在非对象上调用成员函数 foo()
如果我不创建 systemize 对象,这些错误就解决了。 谁能告诉我如何解决这个问题?
编辑:系统化文件
class Systemize extends CI_Controller
{
function __construct() {
parent::__construct();
}
public function init() {
if('2' == '3') // false for now so it does nothing
{
$this->load->view("system/view_file");
exit();
}
}
Php 错误指示在日志文件中调用 TEST->foo 的位置
如果我在创建对象之前加载模型,它可以工作,但反之则不行。我还是不明白为什么 Codeigniter 会这样?
【问题讨论】:
-
该错误消息必须显示您的行号。写下您的整个
systemize类并指出行号 -
不,不要发布您的整个代码。发布MCVE 和相应的行号。
-
完成。希望现在你能找到问题@QPaysTaxes
-
方法'TEST'定义在哪里?
-
我用别名 Test 加载了模型。 $this->load->model("model_name", "Test");
标签: php codeigniter