/** * return the Response object associated to the view action * * @return \Symfony\Component\HttpFoundation\Response */ public function showAction($id) { if (false === $this->admin->isGranted('SHOW')) { throw new AccessDeniedException(); } $object = $this->admin->getObject($this->get('request')->get($this->admin->getIdParameter())); if (!$object) { throw new NotFoundHttpException(sprintf('unable to find the object with id : %s', $id)); } $this->admin->setSubject($object); // build the show list $elements = $this->admin->getShow(); return $this->render($this->admin->getShowTemplate(), array( 'action' => 'show', 'object' => $object, 'elements' => $this->admin->getShow(), 'admin' => $this->admin, 'base_template' => $this->getBaseTemplate(), )); }
/** * @param null $id * @param string $revision * * @return Response */ public function historyViewRevisionAction($id = null, $revision = null) { if (false === $this->admin->isGranted('EDIT')) { throw new AccessDeniedException(); } $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)); } $manager = $this->get('sonata.admin.audit.manager'); if (!$manager->hasReader($this->admin->getClass())) { throw new NotFoundHttpException(sprintf('unable to find the audit reader for class : %s', $this->admin->getClass())); } $reader = $manager->getReader($this->admin->getClass()); // retrieve the revisioned object $object = $reader->find($this->admin->getClass(), $id, $revision); if (!$object) { throw new NotFoundHttpException(sprintf('unable to find the targeted object `%s` from the revision `%s` with classname : `%s`', $id, $revision, $this->admin->getClass())); } $this->admin->setSubject($object); return $this->render($this->admin->getShowTemplate(), array('action' => 'show', 'object' => $object, 'elements' => $this->admin->getShow())); }