CodeIgniter未定义属性加载不起作用

时间:2018-05-01 07:18:30

标签: php codeigniter apache2

所以我试图在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扩展名,但这些都没有解决问题。

4 个答案:

答案 0 :(得分:2)

请在型号名称中使用_并尝试以下代码,它一定会帮助您。

    private void webview_LoadCompleted(object sender, NavigationEventArgs e)
    {
        if (page.Source.AbsoluteUri.Contains("access_token"))
        {
            DataPackage dataPackage = new DataPackage();
            string r3 = page.Source.AbsoluteUri;
            string ntoken = r3.Substring(r3.IndexOf("access_token") + 13);
            string token = ntoken.Substring(0, ntoken.IndexOf("&"));
            web.Visibility = Visibility.Collapsed;
         }
     }

然后使用: -

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

答案 1 :(得分:0)

您加载模型UserAccountIdxModel并使用UserAccountIdx

这两个名字应该相同

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

如下所示

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

答案 2 :(得分:0)

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

将此文件重命名为UserAccountIdx_model.php

main/Models/UserAccountIdx_model.php
UserAccountIdx_model.php类中的

应该是这样的

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);

OR

$this->load->model('UserAccountIdx_model','user'); // assign model name to `user`
$acc = $this->user->getUserAccount($email);

答案 3 :(得分:0)

public function __construct(){
    parent::__construct();
    $this->load->library('database');
    $this->load->model('UserAccountIdxModel', 'u_model');

}

并使用它:

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