CodeIgniter - múltiples instancias de un modelo
-
06-07-2019 - |
Pregunta
Estoy usando CodeIginter como mi marco PHP. Estoy explicando la situación a continuación: -
Necesito tres modelos con nombre: -
- User_Model
- Relation_Model
- Recordatorio_Modelo
Ahora considere la situación:
User_Model
ya está escrito. Estoy escribiendo Relation_Model
. Mi amigo escribirá el Reminder_Model
.
Relation_Model
crea una instancia de User_Model
, y lo utiliza, en uno de sus métodos: getRelation($userID)
Reminder_Model
también crea una instancia de User_Model
para su funcionamiento.
Reminder_Model
necesita llamar al método getRelation
de Relation_Model.
Por lo tanto, debe haber al menos dos instancias de User_Model
. Uno en Relation_Model
, otro en Reminder_Model
.
El problema es cómo me aseguro de dentro de Relation_Model
, que mi instancia de User_Model
no interfiere con el User_Model
instancia de la clase Reminder_Model
de mi amigo
Es decir, para codificar Reminder_Model
, mi amigo no debe tener conocimiento interno de Relation_Model
, solo para usar uno de sus métodos getRelation
.
Si quiere saber la necesidad de esto, diga: Reminder_Model carga el modelo del usuario que ha iniciado sesión (digamos usuario-A), Relation_Model trabaja con los modelos de los usuarios que son miembros del equipo del usuario-A.
Solución
No estoy seguro de entender por qué no puede usar la misma instancia de la clase User_Model, pero tal vez cargar el modelo dos veces, una vez con el viejo y simple $ this- > load- > model (' User_Model ') y segundo con $ this- > load- > model (' Use_Model ',' Second_User_Model ') ayudará. O podría clonar el objeto como $ this- > second_user_model = clone $ this- > user_model .