题
我使用 CodeIginter 作为我的 PHP 框架。我将情况解释如下:-
我需要三个模型,名称为:-
- 用户模型
- 关系模型
- 提醒_型号
现在考虑一下情况:
User_Model
已经写好了。我在写信 Relation_Model
. 。我的朋友会写 Reminder_Model
.
Relation_Model
实例化 User_Model
, ,并在其方法之一中使用它: getRelation($userID)
Reminder_Model
还实例化了一个 User_Model
其功能的实例。
Reminder_Model
需要打电话 getRelation
Relation_Model 的方法。
所以,应该至少有两个实例 User_Model
. 。一进 Relation_Model
, ,另一个在 Reminder_Model
.
问题是我如何确保 里面 Relation_Model
, ,那个我的 User_Model
实例不干扰 User_Model
我朋友的例子 Reminder_Model
班级?
也就是说,要编码 Reminder_Model
, ,我的朋友不应该有内部知识 Relation_Model
, ,只是使用它的方法之一 getRelation
.
如果您想知道这样做的必要性,请说:Reminder_Model 加载已登录的用户(例如用户 A)的模型,Relation_Model 与属于用户 A 团队成员的用户的模型一起使用。
解决方案
我不确定我是否理解为什么不能使用 User_Model 类的相同实例,但可能会加载模型两次,一次使用普通的旧模型 $this->load->model('User_Model') 第二个是 $this->load->model('Use_Model', 'Second_User_Model') 会有帮助的。或者你可以 克隆 物体就像 $this->second_user_model = 克隆 $this->user_model.