2016-07-10 16 views
0

Ich habe Eintrag in meiner route.php wie - $route['admin/students'] = 'view_student'. Hier ist view_student der Name des Controllers. Jetzt, wenn von "localhost/school/admin" Seite ich rufe <a href="admin/students">Students</a>, als alles funktioniert gut; Aber wenn ich meine Route wie ändern - $route['/school/admin/students'] = 'view_student', und rufen Sie es von "localhost/school/admin" Seite als <a href="/school/admin/students">Students</a>, als 404 Seite angezeigt wird. Was ist hier falsch?URL-Routing in PHP Codeigniter

Antwort

0

Schule ist Ihre ci-Wurzel, wenn Sie also $ route ['/ school/admin/students'] definieren, sucht sie eine Schulklasse mit Admin-Funktion, die nie existiert, anstelle der Admin-Route.

Sie die Dokumentationen lesen sollten, bevor jeder Schritt machen, https://www.codeigniter.com/userguide3/general/routing.html

+0

Ok .. definiert verknüpfen, dass ich es bekam, aber das Problem weiterhin besteht, wenn ich auf bin „localhost/Schule/admin/Studenten/by_class“ (Studenten ist Controller-Klasse und By_class ist seine Methode) Seite und dann auf "localhost/school/admin/register_student" (register_student ist Controller-Klasse) mit Route als '$ route [' admin/register_student ']', als es wird URL-Struktur "localhost/school/admin/studenten/admin/register_student" anstelle von "localhost/school/admin/register_student". Wie macht man solche Art von Route? Ich meine, wie kann ich 2 Segmente in URL überspringen - hier "by_class" & "Studenten". –

+0

Wenn ich eine Route wie '$ route ['register_student']' erstellen werde, dann wird die URL-Struktur "localhost/school/admin/students/register_student" anstelle von "localhost/school/admin/register_student" sein. Also meine Frage ist, wie man dieses "Studenten" -Segment von URL überspringt? –

1

diesen Code Versuchen Sie es könnte Ihnen helfen:

Hier Armaturenbrett ist der Name des Controllers

//this will route as localhost/appFolder/admin/index 
    $route['admin'] = 'dashboard'; // for your index page 

//this will route as localhost/appFolder/admin/method_name 
$route['admin/(:any)'] = 'dashboard/$1'; 

//this will route as localhost/appFolder/admin/method_name/param1 
$route['admin/(:any)/(:any)'] = 'dashboard/$1/$2'; 

Verknüpfen Sie die Route Wie

an die andere Steuerung wie

<a href="<?php echo base_url('otherControllerName/method_name'); ?>"></a> 
+0

Danke Kumpel! Du hast gerade mein Leben gerettet. War in diesem Problem von einer Woche oder zwei fest. Jetzt funktioniert es perfekt! Aber ich habe kleine Änderungen an der von Ihnen vorgeschlagenen Lösung vorgenommen. Hut ab! Danke noch einmal! –