Bonjour à tous,
J'ai une entité Page qui possède un slug.
Je récupère donc le slug dans mon controller pour afficher le contenu adéquat.
Je voudrais pour certaine page avoir un comportement différent.
La seul solution que j'ai trouvé est de faire un switch selon le slug.
Le problème est que le jour ou le slug change (pour du référencement par exemple) il me faut également le changer dans le controller.
Voilà ma classe Page :
et mon controller :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 class Page extends BaseEntity { /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @Gedmo\Slug(fields={"frontname"}) * @ORM\Column(length=255, unique=true) */ private $slug; //RESTE DE LA CLASS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 class PageController extends Controller { public function showAction(Request $request) { $slug = $request->get('slug_page'); $page = $this->getDoctrine()->getRepository('AppBundle:Autre')->findOneBy(array('slug' => $slug)); if (!$page) { throw $this->createNotFoundException('Page introuvable.'); } switch($slug){ case 'notre-equipe': return $this->render('@App/Frontend/equipe/list.html.twig'); // etc.... } return $this->render('AppBundle::Frontend/page/index.html.twig', array( 'page' => $page, )); } }
N'y aurait-il pas une solution plus propre pour traiter ces pages différemment ?
Je suis sous symfony 2.7.
Merci d'avance pour votre aide.
Partager