php – 如何在CodeIgniter中使用正确的面向对象的模型与构造函数?

现在我创建CodeIgniter模型的方式是(即没有构造函数,必须一直传递userID并限制在一个对象上):
$this->load->model('User');
$this->user->set_password($userID,$password);

但我想这样做:

$this->load->model('User');
$User = new User($userID);
$User->set_password($password);

更新:也许只是一个用户模型是一个很差的例子.

例如,如果我有一个有各种项目的购物清单,我想以这种方式使用PHP

$this->load->model('List');
$this->load->model('Item');

$List = new List();
$items[] = new Item($itemName1,$itemPrice1);
$items[] = new Item($itemName2,$itemPrice2);

$List->add_items($items);

以这种方式处理PHP OO,CodeIgniter感到基本上破裂了.有谁有任何解决方案仍然可以在每个模型中使用超级对象?

你可以像你通常那样做:
require_once(APPPATH.'models/User.PHP');
$User = new User($userID);

或者,您可以依靠表级模型返回记录级别的模型:

$this->load->model('users_model'); // users (plural) is the table-level model
$User = $this->users_model->get_user($userID);

同时,在users_model中

require_once(APPPATH.'models/User.PHP');

public function get_user($userID)
{
  // get a record from the db
  // map record to model
  // return model
}

相关文章

Hessian开源的远程通讯,采用二进制 RPC的协议,基于 HTTP 传输。可以实现PHP调用Java,Python,C#等多语...
初识Mongodb的一些总结,在Mac Os X下真实搭建mongodb环境,以及分享个Mongodb管理工具,学习期间一些总结...
边看边操作,这样才能记得牢,实践是检验真理的唯一标准.光看不练假把式,光练不看傻把式,边看边练真把式....
在php中,结果输出一共有两种方式:echo和print,下面将对两种方式做一个比较。 echo与print的区别: (...
在安装好wampServer后,一直没有使用phpMyAdmin,今天用了一下,phpMyAdmin显示错误:The mbstring exte...
变量是用于存储数据的容器,与代数相似,可以给变量赋予某个确定的值(例如:$x=3)或者是赋予其它的变...