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

前端之家收集整理的这篇文章主要介绍了php – 如何在CodeIgniter中使用正确的面向对象的模型与构造函数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
现在我创建CodeIgniter模型的方式是(即没有构造函数,必须一直传递userID并限制在一个对象上):
  1. $this->load->model('User');
  2. $this->user->set_password($userID,$password);

但我想这样做:

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

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

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

  1. $this->load->model('List');
  2. $this->load->model('Item');
  3.  
  4. $List = new List();
  5. $items[] = new Item($itemName1,$itemPrice1);
  6. $items[] = new Item($itemName2,$itemPrice2);
  7.  
  8. $List->add_items($items);

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

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

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

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

同时,在users_model中

  1. require_once(APPPATH.'models/User.PHP');
  2.  
  3. public function get_user($userID)
  4. {
  5. // get a record from the db
  6. // map record to model
  7. // return model
  8. }

猜你在找的PHP相关文章