Пользовательские классы в CodeIgniter

Похоже, это очень распространенная проблема для новичков с CodeIgniter, но ни одно из решений, которые я нашел до сих пор, не имеет отношения к моей проблеме. Как говорится в теме, я пытаюсь включить собственный класс в CodeIgniter.

Я пытаюсь создать несколько объектов указанного ниже класса и поместить их в массив, поэтому мне нужно, чтобы класс был доступен для модели.

Я пробовал использовать функции load (library-> load ('myclass') в CodeIgniter, которые вроде работают, за исключением того, что сначала пытается создать объект класса вне модели. Это, очевидно, проблема, поскольку конструктор ожидает несколько параметров.

Я нашел до сих пор следующие решения:

  1. Простое включение php, которое кажется достаточно хорошим, но поскольку я новичок в CodeIgniter Я хочу быть уверенным, что придерживаюсь этого возможный.
  2. Создание «класса-оболочки», как предлагается здесь , однако я не уверен, как бы это реализовать.

Класс, который я хочу включить, User.php

ID = $ID;
        $this->username = $username;
        $this->access_lvl = $access_lvl;
        $this->staff_type = $staff_type;
        $this->name = $name;
    }

    public function __toString() 
    {
        return $this->username;
    }
}
?>

Метод (модель), для которого требуется User.php

function get_all_users()
{
    $query = $this->db->get('tt_login');
    $arr = array();

    foreach ($query->result_array() as $row)
    {
        $arr[] = new User
        (
            $row['login_ID'],
            $row['login_user'],
            $row['login_super'],
            $row['crew_type'],
            $row['login_name']
        );
    }    

    return $arr;
}

И, наконец, контроллер,

function index()
{
        $this->load->library('user');
        $this->load->model('admin/usersmodel', '', true);            

        // Page title
        $data['title'] = "Some title";
        // Heading
        $data['heading'] = "Some heading";
        // Data (users)
        $data['users'] = $this->usersmodel->get_all_users();

18
задан tereško 5 July 2017 в 14:33
поделиться