When you want to insert an Entity you do this:
$user = new User();
$user->setEmail('[email protected]');
$em->persist($user);
$em->flush();
But what if I want to create an article which can have one User;
Currently, I need to do:
$user = $em->getRepository('User')->find($id);
$article->setUser($user);
This is because of the relationship, Doctrine 2 asks for an User entity.
However, I can't "mock" an User object, because I don't want the id be set manually, therefore I can't do:
$user = new User();
$user->setId(45);
Am I wrong about this behavior, how do you do?
It can be performance matter to load the User entity just to set the relationship, even with a cache, which cannot be always an option, especially for an update.
If you don't have a managed User entity handy, what you want is a reference proxy, which the EM will be happy to give you:
<?php
$article = new Entity\Article();
$article->setTitle('Reference Proxies Rule');
$article->setBody('...');
$article->setUser($em->getReference('Entity\User',45));
$em->persist($article);
$em->flush();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With