Traiter une page différemment selon son slug
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 :
Code:
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 |
et mon controller :
Code:
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.