예제 #1
0
 /**
  * @param Request $request
  *
  * @return RedirectResponse|Response
  */
 public function updateAction(Request $request)
 {
     $resource = $this->findOr404($request);
     $form = $this->getForm($resource);
     if (in_array($request->getMethod(), array('POST', 'PUT', 'PATCH')) && $form->submit($request, !$request->isMethod('PATCH'))->isValid()) {
         $this->domainManager->update($resource);
         if ($this->config->isApiRequest()) {
             return $this->handleView($this->view($resource, 204));
         }
         return $this->redirectHandler->redirectTo($resource);
     }
     if ($this->config->isApiRequest()) {
         return $this->handleView($this->view($form));
     }
     $view = $this->view()->setTemplate($this->config->getTemplate('update.html'))->setData(array($this->config->getResourceName() => $resource, 'form' => $form->createView()));
     return $this->handleView($view);
 }
예제 #2
0
 /**
  * @param Request $request
  *
  * @return RedirectResponse|Response
  */
 public function updateAction(Request $request)
 {
     $this->isGrantedOr403('update');
     $resource = $this->findOr404($request);
     $form = $this->getForm($resource);
     if (in_array($request->getMethod(), array('POST', 'PUT', 'PATCH')) && $form->submit($request, !$request->isMethod('PATCH'))->isValid()) {
         $resource = $this->domainManager->update($resource);
         if ($this->config->isApiRequest()) {
             if ($resource instanceof ResourceEvent) {
                 throw new HttpException($resource->getErrorCode(), $resource->getMessage());
             }
             return $this->handleView($this->view($resource, 204));
         }
         if ($resource instanceof ResourceEvent) {
             return $this->redirectHandler->redirectToIndex();
         }
         return $this->redirectHandler->redirectTo($resource);
     }
     if ($this->config->isApiRequest()) {
         return $this->handleView($this->view($form, 400));
     }
     $view = $this->view()->setTemplate($this->config->getTemplate('update.html'))->setData(array($this->config->getResourceName() => $resource, 'form' => $form->createView()));
     return $this->handleView($view);
 }