public function saveTree($treeRole) { // todo: Optimaze it to load all list entities $ids = []; foreach ($this->walkTree($treeRole) as $roleData) { $role = false; if (isset($roleData['id'])) { $role = $this->roleRepository->find($roleData['id']); } if (!$role) { $role = $this->roleRepository->createNewEntity(); } $role = $this->roleRepository->hydrate($role, $roleData); if ($roleData['parentId']) { $role->setParent($this->roleRepository->find($roleData['parentId'])); } $this->roleRepository->save($role); $ids[] = $role->getId(); } foreach ($this->getAll() as $role) { if (in_array($role->getId(), $ids)) { continue; } $this->roleRepository->delete($role); } }
public function testHydrate() { $data = ['id' => 1]; $role = $this->repository->hydrate(new RoleEntity(), $data); $this->assertInstanceOf('OpsWay\\TocatUser\\Entity\\Role', $role); $this->assertEquals(1, $role->getId()); }