public function testExtract() { $role = (new RoleEntity())->setId(2); $data = $this->repository->extract($role); $this->assertArrayHasKey('id', $data); $this->assertEquals(2, $data['id']); }
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); } }