2009-07-07 9 views
1

Hé les gars, je suis en train de créer des profils utilisateur pour mon site où l'URL est quelque chose commesecteur URL - Profils utilisateur - Codeigniter

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 
?> 

Pour le moment, je reçois une erreur 404 chaque fois que je vais;

mysite.com/user/ChrisSalij

Je pense que cela parce qu'il attend qu'il y ait une méthode appelée ChrisSalij. Bien que je suis sûr que j'utilise abusivement le $ this-> uri-> segment(); commande aussi: P

Toute aide serait appréciée. Merci

Répondre

3

C'est parce que le contrôleur recherche une fonction appelée ChrisSalij.

Les quelques façons de résoudre ce:

1) changement

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 n'aimez pas l'idée que l'index soit dans l'URL, vous pouvez changer la fonction à appeler profile ou comme, ou regarder dans routing

et utiliser quelque chose le long des lignes de

$route['user/(:any)'] = "user/index/$1"; 

pour cartographier correctement l'URL de mysite.com/user/ChrisSalij

+0

fonctionne comme un charme. Je vous remercie. Je me sens comme un idiot de ne pas penser à passer par la fonction: P –