Ho una AR chiamata User
, che ha tra le altre entità quella chiamata City
.
Il modo in cui assegno un City
a User
è:
$user->addCity($city);
Il problema si presenta quando viene dato un id
su qualche endpoint di Controller invece di un'entità City
, non posso metterli in relazione se non è attraverso un'istanza e non riesco a recuperare l'intance dell'entità senza un repository.
Potrei recuperare l'entità con CityRepository
e poi aggiungerla a User
, ma per quanto dovrei usare solo un repository per AR.
Per il momento, sto ottenendo il riferimento tramite EntityManager di Symfony:
public function __construct(UserRepository $users)
{
$this->users = $users;
}
public function execute(Passenger $user, int $cityId, string $companyName = '')
{
$city = $this->users->getCityReferenceById($cityId);
$user->addCity($city);
....
}
mentre su UserRepository:
public function getCityReferenceById(int $cityId): City
{
return $this->em->getReference(City::class, $cityId);
}