KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Firstly, this question is similar to How to re-save the entity as another row in Doctrine 2 The difference is that I'm trying to save the data within an entity that has a OneToMany relationship. I'd like to re-save the entity as a new row in the parent entity (on the "one" side) and then as new rows in each subsequent child (on the "many" side). I've used a pretty simple example of a Classroom having many Pupils to keep it simple. So me might have ClassroomA with id=1 and it has 5 pupils (ids 1 through 5). I'd like to know how I could, within Doctrine2, take that Entity and re-save it to the database (after potential data changes) all with new IDs throughout and the original rows being untouched during the persist/flush. Lets first define our Doctrine Entities. The Classroom Entity: namespace Acme\TestBundle\Entity; use Doctrine\ORM\Mapping as ORM; use Doctrine\Common\Collections\ArrayCollection; /** * @ORM\Entity * @ORM\Table(name="classroom") */ class Classroom { /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @ORM\Column(type="string", length=255) */ private $miscVars; /** * @ORM\OneToMany(targetEntity="Pupil", mappedBy="classroom") */ protected $pupils; public function __construct() { $this->pupils = new ArrayCollection(); } // ========== GENERATED GETTER/SETTER FUNCTIONS BELOW ============ } The Pupil Entity: namespace Acme\TestBundle\Entity; use Doctrine\ORM\Mapping as ORM; use Doctrine\Common\Collections\ArrayCollection; /** * @ORM\Entity * @ORM\Table(name="pupil") */ class Pupil { /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="AUTO")
Tags (comma-separated)
Save Edits
Cancel