Ciao a tutti, ho 2 entità, User e UserPermission in relazione oneToMany. Uno User può avere più UserPermission.
Quando faccio qualcosa come $user->addPermission($permission);
dove addPermission() è qualcosa del genere:
$this->userPermissions = ArrayCollection();
public function addPermission($permission)
{
...
$this->userPermissions->add($permission);
...
}
Poi faccio $this->userRepository->save($user);
viene salvato tutto nella tabella user_permissions
Questo lo schema di User:
oneToMany:
userPermissions:
targetEntity: Domain\Model\Permission\UserPermission
cascade: ["all"]
mappedBy: user
Questo invece di UserPermisson:
manyToOne:
user:
targetEntity: Domain\Model\User\User
inversedBy: userPermissions
cascade: ["all"]
joinColumn:
name: user_id
referencedColumnName: id
Ho problemi invece nella rimozione:
$user->removePermission($permission);
public function removePermission($permission)
{
$this->userPermissions->removeElement($permission);
}
$this->userRepository->save($user);
E dalla tabella user_permissions non mi spariscono le righe... Anche se la collezione userPermissions effettivamente lavora, nel senso che removeElement($permission) mi toglie l'elemento dalla collezione. Ma non capisco come mai questa rimozione non viene persistita.
Il cascade: ["all"] non dovrebbe aiutarmi in questo?
Grazie