3 votes

routage url du contrôleur par défaut de codeigniter

Je suis en train de mettre en place un site de réseautage simple et je voudrais que les urls fonctionnent de la même manière que celles de Facebook. Ainsi, en tapant domain.com/username, j'obtiendrais un profil d'utilisateur. Je peux déjà le faire de cette façon

Profil des utilisateurs connectés à

domain.com/

le profil des autres utilisateurs à

domain.com/home/username

Le contrôleur par défaut s'appelle home et j'utilise actuellement la fonction _remap pour vérifier les paramètres supplémentaires de l'url afin d'afficher des données différentes en fonction de ce qui est ou n'est pas passé.

Ma question est la suivante : comment faire pour que je puisse accéder aux profils des utilisateurs par :

domain.com/username 

Y a-t-il un paramètre de routes.php que je pourrais utiliser ? htaccess ?

5voto

Ahmad Points 4329

Vous devez ajouter la règle suivante dans votre config/routes.php

// Profile Route
$route['(:any)'] = 'home/$1';

cela va rediriger toutes vos requêtes vers le contrôleur domestique .

donc domain/michelle sera réacheminé en tant que domain/home/michelle mais dans ce cas, toutes vos requêtes seront redirigées vers le contrôleur de base. par exemple. domain/pages/about seront également redirigés vers domain/home/pages/about qui est faux.

domain/michelle => domain/home/michelle // TRUE
domain/pages/about => domain/home/pages/about // FALSE

donc vous DEVEZ ajouter pour chaque demande une règle identique avant le Profile Route , eg. $route['pages/(:any)'] = 'pages/$1';

mettre tout cela ensemble :

// Page Route 
$route['pages/(:any)']  = 'pages/$1'

// Last Profile Route
$route['(:any)'] = 'home/$1';

1voto

Tim Points 772

Ce n'est pas la chose la plus facile à faire dans Codeigniter. Pour le faire, vous devez d'abord définir toutes les routes que vous utilisez dans routes.php et à la fin du fichier vous devez ajouter une ligne, qui enverra toutes les autres requêtes à votre contrôleur qui vérifiera si l'utilisateur existe.

$route['stores/(:any)'] = 'stores/$1';
$route['pages/(:any)'] = 'pages/$1'; 

$route['(:any)'] = "home/$1"; //this route will return user's page

0voto

user1594523 Points 26

Vous pouvez le faire en modifiant le fichier routes.php disponible dans le fichier application/config. Pour en savoir plus sur routes.php. Voici le lien Routage des URI dans Codeigniter

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X