php - findbyid - Yii framework Muchas a muchas relaciones
yii update (6)
¿Cuál es el método para guardar y actualizar la relación Muchos a Muchos en el marco Yii?
A menos que cree un modelo para la tabla entre las dos tablas principales, su única opción es usar DAO (Objeto de acceso a la base de datos) y especificar SQL con él.
Eche un vistazo a cómo la demo de blog logra esta tarea.
Hay una mejor implementación como comportamiento.
puede configurarlo en el nivel de mysql ... yendo a la vista relacional debajo de cada tabla en phpmyadmin y proporcionar la condición relacional necesaria ... y usar MANY_MANY en la clase de modelo dentro de las relaciones ...
La pregunta es muy común.
Por lo general, los componentes de datos con MUCHAS a MUCHAS relaciones aparecen de forma secuencial e independiente. Entonces solo necesita hacer una acción de inserción después de otra.
Si su relación necesita una actualización dependiente, debe utilizar activadores de SQL en el nivel de la Base de datos. Eso garantizará la integridad de los datos y proporcionará una separación bastante buena en la lógica comercial de la aplicación.
CREATE TRIGGER some_trigger
AFTER UPDATE ON some_table
...
END IF;
Una forma similar es encapsular los datos relacionales en un modelo lógico en el nivel de PHP (y, por ejemplo, manipular con 2-3 modelos de RA allí) y emular la lógica de los triggers SQL.
La siguiente extensión hace lo que quiere ... Yii Framework - Extension: cadvancedbehavior
Una cosa importante a tener en cuenta: en cada actualización, la extensión borra todos los registros anteriores y crea nuevos. Por lo tanto, no lo usaría cuando la tabla intermedia contenga datos adicionales que no sean las claves externas.
utilice MANY_MANY
tipo de relación para configurar muchas a muchas conexiones entre Modelos (se necesita una tabla asociativa para romper una relación de muchos a muchos en relaciones uno a muchos) Y ahora puede usar todas las funciones relacionales de Registros activos
Yii Framework - La guía definitiva para Yii: trabajar con bases de datos-Relational Active Record