Networking\InitCmsBundle\Controller\MenuItemAdminController::deleteAction PHP Méthode

deleteAction() public méthode

public deleteAction ( $id )
    public function deleteAction($id)
    {
        /** @var Request $request */
        $request = $this->get('request_stack')->getCurrentRequest();
        $id = $this->get('request')->get($this->admin->getIdParameter());
        $object = $this->admin->getObject($id);
        if (!$object) {
            throw new NotFoundHttpException(sprintf('unable to find the object with id : %s', $id));
        }
        if (false === $this->admin->isGranted('DELETE', $object)) {
            throw new AccessDeniedException();
        }
        if ($request->get('subclass') && $request->get('subclass') == 'menu') {
            if (false === $this->admin->isGranted('ROLE_SUPER_ADMIN')) {
                throw new AccessDeniedException();
            }
        }
        if ($request->getMethod() == 'DELETE') {
            try {
                $this->currentMenuLanguage = $object->getLocale();
                $this->admin->delete($object);
                if ($this->isXmlHttpRequest()) {
                    return $this->renderJson(array('result' => 'ok', 'objectId' => $this->admin->getNormalizedIdentifier($object), 'status' => 'success', 'message' => $this->admin->trans('flash_delete_success')));
                } else {
                    $this->get('session')->getFlashBag()->add('sonata_flash_success', 'flash_delete_success');
                }
            } catch (ModelManagerException $e) {
                if ($this->isXmlHttpRequest()) {
                    return $this->renderJson(array('result' => 'ok', 'objectId' => $this->admin->getNormalizedIdentifier($object), 'status' => 'error', 'message' => $this->admin->trans($e->getMessage())));
                } else {
                    $this->get('session')->getFlashBag()->add('sonata_flash_error', 'flash_delete_error');
                }
            }
            return new RedirectResponse($this->admin->generateUrl('list'));
        }
        return $this->render($this->admin->getTemplate('delete'), array('object' => $object, 'action' => 'delete'));
    }