segments URL - Profils utilisateur - CodeIgniter
-
11-09-2019 - |
Question
Hé les gars, je suis en train de créer des profils utilisateur pour mon site où l'URL est quelque chose comme
mysite.com/user/ChrisSalij
Actuellement, mon contrôleur ressemble à ceci:
<?php
class User extends Controller {
function user(){
parent::Controller();
}
function index(){
$data['username'] = $this->uri->segment(2);
if($data['username'] == FALSE) {
/*load default profile page*/
} else {
/*access the database and get info for $data['username']*/
/*Load profile page with said info*/
}//End of Else
}//End of function
}//End of Class
?>
En ce moment, je reçois une erreur 404 chaque fois que je vais;
mysite.com/user/ChrisSalij
Je pense que c'est parce qu'il attend qu'il y ait une méthode appelée ChrisSalij. Bien que je suis sûr que je suis abusant du $ this-> uri-> segment (); commande aussi: P
Toute aide serait appréciée. Merci
La solution
Son parce que le contrôleur est à la recherche d'une fonction appelée ChrisSalij.
Les quelques façons de résoudre ceci:
1) Variation
function index(){
$data['username'] = $this->uri->segment(2);
être
function index($username){
$data['username'] = $username;
et utiliser l'url de mysite.com/user/index/ChrisSalij
2) si vous ne aimez pas l'idée de l'indice étant dans l'URL, vous pouvez changer la fonction à appeler le profil ou similaires, ou regarder dans routage
et utiliser quelque chose le long des lignes de
$route['user/(:any)'] = "user/index/$1";
pour mapper correctement l'URL de mysite.com/user/ChrisSalij