CodeIgniter Неопределенная загрузка свойства не работает - PullRequest
0 голосов
/ 01 мая 2018

Итак, я пытаюсь загрузить модель в 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 голосов
/ 01 мая 2018
public function __construct(){
    parent::__construct();
    $this->load->library('database');
    $this->load->model('UserAccountIdxModel', 'u_model');

}

И используйте это:

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

0 голосов
/ 01 мая 2018

Пожалуйста, используйте _ в названии модели и попробуйте следующий код, он определенно вам поможет.

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

затем используйте: -

$acc = $this->UserAccountIdx_Model->getUserAccount($email);
0 голосов
/ 01 мая 2018

Причиной ошибки является недопустимое имя файла вашей модели. сделайте ваши коды как следующие

переименуйте ваш файл следующим образом 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);
0 голосов
/ 01 мая 2018

Вы загружаете модель UserAccountIdxModel и используете UserAccountIdx

оба имени должны совпадать

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

Как показано ниже

$this->load->model('UserAccountIdxModel');
$acc = $this->UserAccountIdxModel->getUserAccount($email);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...