Ca doit se faire en plusieurs étapes: tu cherches la listes des utilisateurs tu cherches la liste des controlleurs ensuite tu enlèves de la liste des utilisateurs la liste des controlleurs puis tu routes** [code]// je récupère la liste des utilisateurs
Bonjour à tous,
Actuellement en phase de développement d'un site permettant la création de profil, je fais face à un problème de routing.
Le site en question devrait permettre la création de profil en ligne accessible à une adresse personnalisable du type www.site.com/nom_du_profil. Le problème est que je n'arrive pas à faire la distinction entre controller et nom_du_profil.
La logique serait de taper une adresse : www.site.com/qlqchose de vérifier si d'abord qlqchose est un profil, si non, de vérifier si c'est un controller et de rediriger vers lui si c'est le cas, sinon de rediriger vers la page d'accueil du site. Chose que je n'arrive pas à faire :D
Si quelqu'un a une idée, je suis preneur !
En vous remerciant d'avance pour vos réponses.
2 réponses
Merci pour ta réponse BenFarhat,
J'ai d'abord commencé par utiliser ta méthode dans un premier temps. Ca fonctionnait, mais ça mettait beaucoup de temps à se faire.
J'ai donc poursuivi mes recherches et je suis tombé sur une autre méthode qui fonctionne mieux avec moi de code.
Dans mon fichier routes.php, j'inclus ces deux lignes :
// La première servant à rediriger vers l'action de routes
Router::connect('/:lienprofil', array('controller' => 'pages', 'action' => 'routes'), array('pass' => array('lienprofil')));
// La seconde permettant de m'afficher un lien du type www.site.com/profil/lienprofil lorsque le route a été fait
Router::connect('/profil/*', array('controller' => 'profil'));
Ensuite, dans mon fichier PagesController, j'ai rajouté ça :
public function routes($lienprofil) {
$this->loadModel('Option');
$candidat = $this->Option->find('first', array(
'conditions' => array('lienprofil' => $lienprofil),
));
if($candidat){
$this->redirect(array('controller' => 'profil', $lienprofil));
}
}
Et là ça marche nickel :)
Voila en espérant que ça puisse aider quelqu'un s'il fait fasse au même problème que moi ^^
Merci encore pour ton aide BenFarhat.