Ho difficoltà a dare un senso al manuale explanation del manuale di Doctrine delle operazioni in cascata e ho bisogno di qualcuno che mi aiuti a comprendere le opzioni in termini di una semplice relazione ManyToOne.Opzioni di Doctrine Cascade per OneToMany
Nella mia applicazione, ho una tabella/entità di nome Articolo che ha un campo chiave esterna che fa riferimento al campo "id" in una tabella/entità denominata Argomento.
Quando creo un nuovo articolo, seleziono l'argomento da un menu a discesa. Questo inserisce un intero nel campo chiave esterna 'topic_id' nella tabella Articolo.
ho l'associazione argomento $ istituito nell'articolo soggetto come questo:
/**
* @ManyToOne(targetEntity="Topic")
* @JoinColumn(name="topic_id", referencedColumnName="id", nullable=false)
*/
private $topic;
L'entità argomento non ha alcuna annotazione alternativo per quanto riguarda l'articolo entità. Gli argomenti non si preoccupano di ciò che gli articoli fanno riferimento a loro e nulla deve accadere a un argomento quando un articolo che fa riferimento all'argomento viene eliminato.
Poiché non sto specificando l'operazione a cascata nell'entità Articolo, Doctrine genera un errore quando provo a creare un nuovo articolo: "È stata trovata una nuova entità tramite una relazione che non è stata configurata per le operazioni persistenti in cascata. persiste la nuova entità o configura le operazioni persistenti a cascata sulla relazione. "
Quindi so che è necessario scegliere un'operazione a cascata da includere nell'entità Articolo, ma come faccio a sapere quale operazione scegliere in questa situazione?
Dalla lettura del manuale di Doctrine, "staccare" suona come l'opzione giusta. Ma la ricerca delle domande simili degli altri here e here mi fa pensare che preferirei usare "persist".
Qualcuno può aiutarmi a capire che cosa "persist", "rimuovere", "unire" e "staccare" significano in termini di una semplice relazione ManyToOne come quella che ho descritto?
+1 per la buona domanda. Spero che qualcuno risponda presto, mi piacerebbe saperne di più sull'opzione a cascata. Al momento mancano libri o documentazione su Doctrine2. Il collegamento – gremo