Include example of a cascaded "persist" operation
Following up on https://github.com/doctrine/doctrine2/issues/2943 I started to clarify how it's supposed to be done. Please check if this would be necessary (at line 511): `$myFirstComment->setUser($user);` ...and add it (in case).
This commit is contained in:
parent
6e6be3fdd9
commit
6aa81d1d36
@ -453,11 +453,11 @@ following code:
|
|||||||
$user->addComment($myFirstComment);
|
$user->addComment($myFirstComment);
|
||||||
|
|
||||||
$em->persist($user);
|
$em->persist($user);
|
||||||
$em->persist($myFirstComment);
|
$em->persist($myFirstComment); // mandatory if `persist` isn't set
|
||||||
$em->flush();
|
$em->flush();
|
||||||
|
|
||||||
Even if you *persist* a new User that contains our new Comment this
|
Even if you *persist* a new User that contains our new Comment this
|
||||||
code would fail if you removed the call to
|
code requires the explicit call to
|
||||||
``EntityManager#persist($myFirstComment)``. Doctrine 2 does not
|
``EntityManager#persist($myFirstComment)``. Doctrine 2 does not
|
||||||
cascade the persist operation to all nested entities that are new
|
cascade the persist operation to all nested entities that are new
|
||||||
as well.
|
as well.
|
||||||
@ -500,6 +500,18 @@ and the "remove" operation.
|
|||||||
//...
|
//...
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Now you can persist the `User` entity like that:
|
||||||
|
|
||||||
|
.. code-block:: php
|
||||||
|
|
||||||
|
<?php
|
||||||
|
$user = new User();
|
||||||
|
$myFirstComment = new Comment();
|
||||||
|
$user->addComment($myFirstComment);
|
||||||
|
|
||||||
|
$em->persist($user);
|
||||||
|
$em->flush();
|
||||||
|
|
||||||
Even though automatic cascading is convenient it should be used
|
Even though automatic cascading is convenient it should be used
|
||||||
with care. Do not blindly apply cascade=all to all associations as
|
with care. Do not blindly apply cascade=all to all associations as
|
||||||
it will unnecessarily degrade the performance of your application.
|
it will unnecessarily degrade the performance of your application.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user