2012-09-18 20 views
32

Ho una classe Categoria che contiene questo:Esattamente come utilizzare onDelete = "SET NULL" - Doctrine2

/** 
* @ORM\OneToMany(targetEntity="Friend", mappedBy="category") 
* @ORM\OrderBy({"name" = "ASC"}) 
*/ 
protected $friends; 

e una classe amico con questo:

/** 
* @ORM\ManyToOne(targetEntity="Category", inversedBy="friends") 
* @ORM\JoinColumn(name="category_id", referencedColumnName="id", onDelete="SET NULL") 
*/ 
protected $category; 

Quello che ho vuole essere in grado di cancellare le categorie, non importa se ci sono alcuni amici di questa categoria, e se ci sono - il campo della categoria per questi amici deve essere impostato su NULL.

ho cercato di mettere onDelete="CASCADE" per l'annotazione ManyToOne, poi al OneToMany, ho provato ciò che viene mostrato in precedenza, ho provato ad utilizzare cascade={"remove"} nel l'annotazione OneToMany, e niente ha funzionato! Non sono riuscito a trovare un esempio. Per favore potete aiutarmi?

risposta

47

Questa deve essere una risposta pazzesca, ma è stato aggiornato lo schema del database? onDelete="SET NULL" è a livello di database, deve funzionare su innoDB.

+1

Sei un genio! Grazie mille! – Faery

Problemi correlati