2009-03-09 9 views
1

PHP 프레임 워크로 CodeIginter를 사용하고 있습니다. 나는 아래의 상황을 설명하고있다 : -CodeIgniter - 모델의 다중 인스턴스

내가라는 이름의 세 가지 모델이 필요합니다 -

  • User_Model
  • Relation_Model을

지금의 상황을 고려 Reminder_Model :

User_Model을 이미 작성되었습니다. 나는 Relation_Model을 쓰고있다. 내 친구는 Reminder_Model라고 쓸 것입니다.

Relation_ModelUser_Model를 인스턴스화하고, 그 방법들 중 하나, 즉 사용 getRelation($userID)

Reminder_Model 또한 그 기능을위한 하나 개의 인스턴스를 인스턴스 User_Model.

Reminder_ModelgetRelation Relation_Model 메서드를 호출해야합니다.

이렇게 두 개 이상의 인스턴스가 User_Model이어야합니다. 하나는 Relation_Model이고 다른 하나는 Reminder_Model입니다.

문제는 내 User_Model 인스턴스가 내 친구의 Reminder_Model 클래스의 User_Model 예를 방해하지 않는, 어떻게Relation_Model 내부 을 보장 할 것입니다?

즉, Reminder_Model을 코딩하려면 내 친구 중 하나를 사용하여 Relation_Model에 대한 내부 지식이 없어야합니다.

Reminder_Model이 로그인 한 사용자의 모델 (예 : 사용자 -A)을로드하고 Relation_Model이 사용자 -A 팀의 구성원 인 사용자의 모델과 함께 작동한다고 설명합니다. .

답변

3

User_Model 클래스의 동일한 인스턴스를 사용할 수없는 이유는 모르겠지만 보통 두 번 모델을 두 번로드하면됩니다. $ this-> load-> model ('User_Model')으로 두 번째 $ this-> load-> model ('Use_Model', 'Second_User_Model')이 도움이 될 것입니다. 아니면 clone 같은 개체 $ this-> second_user_model = 복제 $ this-> user_model 수 있습니다.

+0

첫 번째 방법은 Reminder_Model의 구현 자에게 Relation_Model에 대한 내부 지식이 있어야합니다 (Relation_Model 내부에서 Second_User_Model의 이름으로 User_Model을 인스턴스화했습니다!). 네, 마침내 복제에 대해서도 생각했습니다. – Sabya

관련 문제