Optimized Imprint function

This commit is contained in:
Kevin Frantz 2018-11-23 23:22:17 +01:00
parent b2642cc311
commit 89530fd6e0
3 changed files with 28 additions and 4 deletions

View File

@ -35,6 +35,18 @@ abstract class AbstractEntityController extends FOSRestController
return $entity;
}
protected function loadEntityBySlug(string $slug): EntityInterface
{
$entity = $this->getDoctrine()
->getRepository($this->entityName)
->findOneBy(['slug' => $slug]);
if (!$entity) {
throw $this->createNotFoundException('No entity found for slug '.$slug);
}
return $entity;
}
protected function redirectToRouteById(string $route, int $id): RedirectResponse
{
return $this->redirectToRoute($route, [

View File

@ -2,21 +2,28 @@
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Response;
use App\DBAL\Types\SystemSlugType;
use App\Entity\Source\AbstractSource;
/**
* @author kevinfrantz
*/
class DefaultController extends AbstractController
class DefaultController extends AbstractEntityController
{
/**
* @todo Optimize function!
* @Route("/imprint", name="imprint")
*/
public function imprint(): Response
{
return $this->render('standard/imprint.html.twig');
$source = $this->loadEntityBySlug(SystemSlugType::IMPRINT);
$view = $this->view($source, 200)
->setTemplate('standard/imprint.html.twig')
->setTemplateVar('source');
return $this->handleView($view);
}
/**
@ -26,4 +33,9 @@ class DefaultController extends AbstractController
{
return $this->render('standard/homepage.html.twig');
}
protected function setEntityName(): void
{
$this->entityName = AbstractSource::class;
}
}

View File

@ -8,5 +8,5 @@ Homepage
Imprint
{% endtrans %}
</h2>
Developed by kevinfrantz
{{ source.text }}
{% endblock %}