Что не так с этим кодом CodeIgniter?

0

Я пытаюсь передать приложение несколько функций из приложения CodeIgniter в другое существующее приложение CodeIgniter. Оба приложения сами по себе работают очень хорошо, но когда я добавил эту вещь, она дает следующую ошибку:

Неустранимая ошибка: вызовите функцию-член order_by() на null в... \application\core\MY_Model.php в строке 7

В этом вопросе я удалил части, не связанные с ошибкой, для упрощения кода.

Файл модели //MY_Model.php

<?php
class MY_Model extends CI_Model {
    protected $_order_by = '';

    public function get(){
        $this->db->order_by($this->_order_by);
    }
}

Файл модели //article_m.php

<?php
class Article_m extends MY_Model
{
    protected $_order_by = 'pubdate desc, id desc';
}

Файл контроллера //frontend.php

<?php
class Frontend extends MY_Controller
{
    function __construct()
    {
    $this->load->model('article_m');  
    }
    function index()
    {
    $this->article_m->get();
    }
}

Пожалуйста помоги. Спасибо!

Теги:
codeigniter
compiler-errors

2 ответа

2
Лучший ответ

при вызове любого $this->db... вы должны обязательно загрузить свою библиотеку database. Проверьте в application\config\autoload.php следующее:

$autoload['libraries'] = array('database');
  • 0
    это сработало, спасибо! есть ли вообще загрузить базу данных с самого контроллера?
  • 0
    Вы не должны загружать какую-либо информацию базы данных в контроллер, так как это не очень хорошая практика MVC. Все взаимодействия с базой данных должны выполняться в вашей модели. Если вы не хотите автоматически загружать библиотеку базы данных, вы можете запустить $this->load->library('database') в методе модели до создания ваших запросов.
Показать ещё 1 комментарий
-2

Я не вижу, что вы выбрали таблицу.

  • 2
    Больше похоже на комментарий ...
  • 0
    Если не решить проблему. Еще учусь что ставить куда на ТАК.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню