【发布时间】:2012-03-19 16:15:51
【问题描述】:
对于 CodeIgniter 的初学者来说,这似乎是一个非常常见的问题,但到目前为止我找到的解决方案似乎都与我的问题无关。就像主题说的那样,我正在尝试在 CodeIgniter 中包含一个自定义类。
我正在尝试创建下面类的几个对象并将它们放在一个数组中,因此我需要该类可用于模型。
我尝试在 CodeIgniter 中使用 load (library->load('myclass') 函数,但它首先尝试在模型之外创建类的对象。这显然是一个问题,因为构造函数需要几个参数。
到目前为止我找到的解决方案是
- 一个简单的 php 包含似乎足够好,但因为我是新手 CodeIgniter 我想确保我坚持下去 可能。
- 按照here 的建议创建一个“包装器类”,但是我不确定如何实现它。
我想包括的课程, 用户.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class User{
public $ID = 0;
public $username = 0;
public $access_lvl = 0;
public $staff_type = 0;
public $name = 0;
public function __construct($ID, $username, $access_lvl, $staff_type, $name)
{
$this->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();
【问题讨论】:
标签: php codeigniter