Encontrar polimórficamente el modelo de la base de datos en Yii2

Tengo una tabla en la base de datos (mysql). Pero esta tabla almacena varios tipos de filas ligeramente diferentes. El tipo depende de estas tablastype columna. Tengo una clase abstracta de ActiveRecord para una tabla y varias subclases descendientes que implementan una lógica ligeramente diferente para las filas de la misma tabla de diferentes tipos. Ahora estoy implementando una acción de controlador de actualización para todos los tipos de filas. Se me proporciona una identificación de la fila y necesito crear una instancia de ActiveRecord que represente la fila con esta identificación. Pero de alguna manera necesito crear instancias de diferentes subclases dependiendo del tipo de la fila correspondiente.

Si me proporcionaran un tipo y una identificación, podría haber usado una fábrica para elegir una subclase correspondiente. Pero ya puedo tener el tipo en la base de datos y una identificación me da suficiente información para elegirlo desde allí. Pero si tuviera que elegir el tipo de la base de datos primero y luego crear una instancia de la subclase correspondiente que habría significado ejecutar la misma consulta dos veces.

Quiero encontrar una buena manera de obtener los datos de la base de datos y luego elegir una subclase de ActiveRecord correcta para crear una instancia para ella sin hacer consultas excesivas o requerir datos excesivos. ¿Hay alguna manera de hacerlo Yii2?

¿O debería abordar este problema de alguna manera diferente? El problema real es tener varias entidades casi iguales pero un poco diferentes almacenadas en una sola tabla con una lógica de negocios un poco diferente.

Respuestas a la pregunta(1)

Su respuesta a la pregunta