public function moveAction() { $formProvider = new FormProvider(); $url = $this->router->getUrlByRoute('admin_group_move', array(), false); $form = $formProvider->getGroupMoveForm($url); $form->writeFromRequest($this->request); $this->response->prepareForJson(); $returnedValue = $this->createReturnedArray('move'); $manager = new Manager($this->dataProvider->getEntityManager(), $this->router); if ($form->isValid()) { $moveNodes = json_decode($form->getField('moves_data')->getValue()); foreach ($moveNodes as $moveNode) { $manager->moveNode($moveNode->node, $moveNode->owner, $moveNode->position); } } else { $entityMoved = $manager->getGroup($form->get('movedId')->getData()); $returnedValue['status'] = 'failed'; $returnedValue['view'] = sprintf('Перемещение группы <b>%s</b> не было сохранено', $entityMoved->getName()); } return $this->acceptSolutionFlushToResponse(json_encode($returnedValue)); }