2011-11-04 19 views
6

me sale un error cuando trato de hacerDoctrina 2.1: cómo configurar "en cascada: persisten" usando yaml

$b = new B(); 
$a->addB($b); 
$entityManager->persist($a); 

porque primero tiene que persistir $ b, sin embargo no puedo hacer esto, así que necesito para establecer la cascada: persistir, creo. Simplemente no puedo encontrar en la documentación cómo hacerlo usando el esquema yaml. Documentation no cubre esta parte (probé en otros lugares de la documentación, así)

Saludos

Respuesta

16

esto funciona para mí

oneToMany: 
    products: 
     targetEntity: Name 
     mappedBy: product 
     cascade: ["persist"] 
+0

enlace a la documentación Doctrina: http://doctrine-orm.readthedocs.org/en/2.0. x/reference/working-with-associations.html # transitive-persistence-cascade-operations – naitsirch

0

Si la clase A tiene una asociación, por ejemplo, de uno a muchos a B, y la variable ArrayCollection en A se llama $ bcollection, entonces la sección de YAML en cascada = { "persistir"} se vería así:

oneToMany: 
    bcollection: 
     targetEntity: Entities\B 
     cascade 
     - persist 
     mappedBy: contact 
     inversedBy: null 
     orphanRemoval: false 
     orderBy: null 
0

Si intentó cascade: ["persist"] y aún no funciona, aquí está el por qué.

A partir del 2016-08-28, estoy usando la última versión de la doctrina en este momento.
La doctrina persist ya no funciona porque es eliminada.

La razón principal es que no debe cambiar la clave principal de la tabla conectada. Y si lo hiciste, ¿por qué?

Esa es la razón por la cascade persist se retira en YML Doctrina 2.

Referencia: https://groups.google.com/forum/#!topic/doctrine-user/fdL7sgtjRM0

Cuestiones relacionadas