dongrong9053 2011-12-13 18:32
浏览 41
已采纳

如何在CodeIgniter中使用适当的面向对象模型和构造函数?

The way I create CodeIgniter models at the moment is (i.e. no constructor, having to pass userID all the time and limited to one object):

$this->load->model('User');
$this->user->set_password($userID, $password);

But I would like to do it like this:

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

UPDATE: Perhaps just a user model was a poor example.

For instance, if I have a shopping list that has various items I would like to use PHP in this way:

$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);

CodeIgniter feels fundamentally broken in handling PHP OO in this way. Does anyone have any solutions that can still use the superobject within every model?

  • 写回答

2条回答 默认 最新

  • douju7765 2011-12-13 18:43
    关注

    You can do it like you normally would:

    require_once(APPPATH.'models/User.php');
    $User = new User($userID);
    

    Or, you can rely on a table-level model to return a record-level model:

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

    Meanwhile, in 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
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 plotBAPC画图出错
  • ¥30 关于#opencv#的问题:使用大疆无人机拍摄水稻田间图像,拼接成tif图片,用什么方法可以识别并框选出水稻作物行
  • ¥15 Python卡尔曼滤波融合
  • ¥20 iOS绕地区网络检测
  • ¥15 python验证码滑块图像识别
  • ¥15 根据背景及设计要求撰写设计报告
  • ¥20 能提供一下思路或者代码吗
  • ¥15 用twincat控制!
  • ¥15 请问一下这个运行结果是怎么来的
  • ¥15 单通道放大电路的工作原理