2017-08-20 3 views
0

Ich habe url erreicht, wiewie Name von dynamisch generierten Methode in codeigniter bekommen

myapp.com/profile/username1

myapp.com/profile/username2

folgt myapp .com/profile/username3

meine routes.php-Datei enthält folgende lin e Code

$route['profile/(:any)'] = 'profile/user_profile/$profile_method'; 

mein profile Controller diesen Code

public function user_profile($profile_method) 
    { 
     echo $profile_method; 
    } 

alles gut enthält, aber das Problem ist, ich möchte weiter zu verarbeiten Benutzernamen zurückzukehren, gibt diese Methode den Parameternamen statt Nutzername. Bitte sagen Sie mir, wo ich falsch mache?

Antwort

3

Spitze Nur Du hast keine / nach Benutzernamen myapp.com/profile/username/1

Versuchen

$route['profile/(:any)'] = 'profile/user_profile/$1'; 
$route['profile/(:any)/(:num)'] = 'profile/user_profile/$1/$2'; 

Statt

$route['profile/(:any)'] = 'profile/user_profile/$profile_method'; 

http://www.codeigniter.com/user_guide/general/routing.html#examples

Dann

public function user_profile($profile_method = '', $id = '') 
{ 
    echo $profile_method . ' <br/> ' . $id; 
} 

Stellen Sie sicher, dass Ihre Controller und andere Dateien korrigieren benannt, in dem nur der erste Buchstabe der Klasse und den Dateinamen Großbuchstaben profile.php ist

Sie eine .htaccess in Hauptverzeichnis haben müssen Index entfernen .php auch von url.

https://github.com/wolfgang1983/htaccess_for_codeigniter


Von Magnus Eriksson Kommentar

CI wird mit regulären Ausdrücken das dynamische URL-Variable zu ersetzen, die das $ 1 bedeutet = das erste Spiel, $ 2 = das zweite Spiel usw. Die $ - Teil ist nicht gewöhnliches pHP-Variable, so dass Sie nennen es nicht zu dem, was Sie wollen.


+0

es funktioniert gut. Aber dennoch möchte ich wissen, wie es funktioniert und Parameternamen ändern in Routen warum betroffenen zu verwandten Controller –

+0

ich Antwort aktualisiert haben es helfen kann – user4419336

+2

@SarjilShaikh - CI des Routers mit regulären Ausdrücken der dynamischen URL-Variable zu ersetzen, was bedeutet, dass '$ 1 '= das erste Spiel,' $ 2' = das zweite Spiel usw. der '$' -Teil ist kein gewöhnliches pHP-Variable, so dass Sie es nicht nennen, was Sie wollen. –

Verwandte Themen