2009-11-02 6 views
1

Je suis nouveau dans le routage CI et URI en général.CodeIgniter: question de routage URL simple

J'ai créé une nouvelle application. Définissez le contrôleur par défaut sur Main. Dans Main, j'ai une méthode index, une méthode popular et une méthode recent.

Lorsque je charge mon application, l'URL apparaît comme http://localhost/myapp ... cela charge évidemment la méthode index dans le contrôleur Main ... c'est très bien.

Maintenant, comment puis-je acheminer mes URI afin que je puisse charger la méthode populaire et récente en allant respectivement à http://localhost/myapp/popular et http://localhost/myapp/recent?

Répondre

2

Vous pouvez utiliser les fonctions de routage de CodeIgniter. Pour ce faire, il suffit d'ajouter les lignes suivantes à votre application/config/routes.php:

$route['recent'] = "main/recent"; 
$route['popular'] = "main/popular"; 
+0

Vous ne pouvez pas avoir de contrôleur avec le nom "index". C'est réservé. Voir http://codeigniter.com/user_guide/general/reserved_names.html –

+0

Oups. Oui, réparé la faute de frappe. L'index était censé être principal. – Franz

+0

pas de problème. Ça arrive :) –

0

Si popular et recent sont des pages réelles dans votre application, par opposition aux fonctions, vous devez les déplacer vers leurs propres contrôleurs, plutôt que de les conserver sous main.

+0

Je ne connais pas très bien CodeIgniter, mais ça ne sonne pas du tout. Je suis sûr à 99% que le routeur peut le faire, et jouer avec 'mod_rewrite' déjà configuré n'est probablement pas une bonne idée, ni n'est cohérent. – mpen

+0

Merci Mark je n'étais pas au courant du routeur dans CI. –

2
$route['recent'] = "your_controller/recent"; 
$route['popular'] = "your_controller/popular"; 

C'est ce que vous aurez besoin. Tout appel à "récent" sera acheminé vers "votre_contrôleur/récent". La même chose vaut avec populaire.