with update one many foreign fields collection properties doctrine-orm many-to-many jointable

properties - update - symfony 4 one to many



Doctrine 2: Cómo manejar tablas de unión con columnas adicionales (2)

Antes que nada, déjame explicarte que esto no existe:

Una tabla de unión (también conocida como tabla de unión o tabla de referencia cruzada ) es una tabla que vincula 2 (o más) otras tablas dentro de la misma base de datos por clave principal. Esto significa que una tabla de unión solo contendrá claves externas, no hay lugar para estas columnas adicionales.

Por lo tanto, cuando necesita columnas adicionales en dicha tabla, ya no es solo un "enlace" entre otras tablas, ¡sino que se convierte en una tabla real por sí sola!

En términos de Doctrine 2, ya no tienes una asociación de muchos a muchos entre 2 entidades, sino que obtienes una asociación de uno a muchos / muchos a uno entre 3 entidades.

Continúe leyendo aquí para más explicaciones de detalles:

¿Cómo configuro una tabla de unión con columnas adicionales, o una asociación de muchos a muchos con propiedades adicionales, en Doctrine 2?


En el segundo artículo, sugiero una actualización menor. En lugar del evento completo, use un LifecycleCallback dentro de la propia entidad:

/** * @ORM/Entity * @ORM/Table(name="jobs”) * @ORM/HasLifecycleCallbacks */ class Job { // ... /** * @ORM/PreRemove */ public function preRemoveCallback() { $this->setPerson(null); $this->setCompany(null); } }