J'utilise un routeur personnalisé pour activer les pages comme:Comment créer un routeur personnalisé dans Zend-Framework?
mytutorialsite.com/category/:categoryname
# added to application.ini
resources.router.routes.categorynameOnCategory.route = /category/:categoryname
resources.router.routes.categorynameOnCategory.defaults.module = default
resources.router.routes.categorynameOnCategory.defaults.controller = category
resources.router.routes.categorynameOnCategory.defaults.action = categoryname
J'ai aussi la table de base de données « catégories » dans laquelle toutes les catégories sont stockées. Par exemple, supposons que les catégories suivantes sont actuellement stockées dans ma base de données:
- html
- css
- js
- php
Cela signifie, les pages suivantes sont réunies:
- mytutorialsite.com/category/html
- mytutorialsite .com/category/css
- mytutorialsite.com/category/js
- mytutorialsite.com/category/php
Mais lorsque vous visitez une page avec un categoryname qui ne figure pas dans la base de données, comme:
- mytutorialsite.com/category/foo
Vous devriez obtenir une page 404 n'existe pas message.
Comment puis-je y parvenir?
Merci, c'était très utile !! –
Il n'y a qu'un seul problème avec le plugin frontcontroller. Maintenant, chaque nom $ category-> a sa propre action dans le contrôleur. Si vous voulez que tous les noms de catégories utilisent la même catégorie categoryAction, il suffit de changer 'action' => 'categoryname' ne fonctionne pas. –
C'est exact. Si vous voulez router l'url vers la même action, c'est encore plus simple (voir ma supposition en haut de ma réponse). La route est simple: "category /: category" et ajoutez une action à cette route ("categoryName"). Ensuite, dans le categorynameAction, le paramètre "category" est disponible via $ this -> _ getParam ("category"). –