CodeIgniter Undefined 属性 加载不工作

CodeIgniter Undefined Property load not working

所以我正在尝试在 CodeIgniter 中加载模型,以便进行函数调用。我的代码如下所示:

    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    define('DEFAULT_PAGE', true);
    $this->pageTitle('Account Login');
    $email = $this->request->getVar('email');

    $this->load->model('UserAccountIdxModel');
    $acc = $this->UserAccountIdx->getUserAccount($email);

当我 运行 它时,我收到一条错误消息 'Undefined property: App\Controllers\Account::$load'

我不确定为什么会收到此错误,我认为加载方法普遍有效。

我正在从 main/Controllers/Account.php 调用我的代码,我正在尝试在 main/Models/UserAccountIdxModel.php 中加载模型。我试过改变模型的路径但无济于事。有什么想法吗?

为了澄清起见,我尝试使用相对路径并使用 .php 扩展名,但这些都没有解决问题。

您加载模型 UserAccountIdxModel 并使用 UserAccountIdx

两个名字应该相同

$this->load->model('UserAccountIdxModel');
$acc = $this->UserAccountIdx->getUserAccount($email);

如下

$this->load->model('UserAccountIdxModel');
$acc = $this->UserAccountIdxModel->getUserAccount($email);

请在模型名称中使用_并尝试下面的代码,它一定会对您有所帮助。

public function __construct(){
    parent::__construct();
    $this->load->database();
    $this->load->model('UserAccountIdx_Model');
}

然后使用:-

$acc = $this->UserAccountIdx_Model->getUserAccount($email);

错误的原因是您的模型文件名无效。让你的代码如下

像这样重命名你的文件UserAccountIdx_model.php

main/Models/UserAccountIdx_model.php

里面的UserAccountIdx_model.phpclass应该是这样的

class UserAccountIdx_model extends CI_Model {
    public function __construct(){
        parent::__construct();
        $this->load->database();
    }
    public function getUserAccount($email){
        // your code
    }
}

现在通过以下方式调用控制器中的模型函数

$this->load->model('UserAccountIdx_model');
$acc = $this->UserAccountIdx_model->getUserAccount($email);

$this->load->model('UserAccountIdx_model','user'); // assign model name to `user`
$acc = $this->user->getUserAccount($email);
public function __construct(){
    parent::__construct();
    $this->load->library('database');
    $this->load->model('UserAccountIdxModel', 'u_model');

}

并使用它:

$acc = $this->u_model->getUserAccount($email);