2009-07-07 17 views
1

Hey Jungs, ich versuche, Benutzerprofile für meine Seite zu schaffen, wo die URL so etwas wieURL Segment - Benutzerprofile - Codeigniter

mysite.com/user/ChrisSalij

ist derzeit mein Controller sieht aus wie so:

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

im Moment erhalte ich einen 404-Fehler, wenn ich gehe zu;

mysite.com/user/ChrisSalij

Ich denke, das liegt daran, dass es dort erwartet genannt ChrisSalij ein Verfahren zu sein. Ich bin mir sicher, dass ich das Segment $ this> uri-> missbrauche(); Befehl auch: P

Jede Hilfe wäre willkommen. Danke

Antwort

3

Es ist, weil der Controller nach einer Funktion namens ChrisSalij sucht.

Die wenigen Möglichkeiten, dies zu lösen:

1) Änderung

function index(){ 
$data['username'] = $this->uri->segment(2); 

sein

function index($username){ 
$data['username'] = $username; 

und verwenden Sie die URL mysite.com/user/index/ChrisSalij

2) Wenn Sie nicht mögen, dass der Index in der URL ist, können Sie die Funktion ändern, die als Profil oder als wie, oder in aussehen routing

verwenden und wie ein Zauber etwas entlang der Linien von

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

korrekt die URL

+0

Works mysite.com/user/ChrisSalij Karte verwenden. Vielen Dank. Ich fühle mich wie ein Idiot, wenn ich nicht daran denke, die Funktion zu durchlaufen: P –