CodeIgniter-Routing
Ich bin die Entwicklung einer E-Commerce-website mit CI -, Produkt-Kategorien und-Produkte. Ich möchte zum weiterleiten der URL, so dass Sie gehen, um die Produkte, controller, dann laufen die getCategoryByName Funktion zum ersten segment, dann laufen die getProductByName für das zweite segment. Hier ist, was ich habe:
URL: Produkte/docupen/rc805
routes.php: $route['Produkte/([a-z]+)'] = "Produkte/getCategoryByName/$1"; $route['Produkte/([a-z]+)/([a-z0-9]+)'] = "Produkte/$1/getProductByName/$2";
Aber es funktioniert nicht. "docupen" ist die Kategorie, und "rc805" ist das Produkt.
Vielen Dank im Voraus.
Danke Euch allen für Eure Hilfe. Dies ist, was ich am Ende mit für das, was ich brauchte.
$route['products/:alle/:num'] = "Produkte/getProductByID"; $route['products/:alle/:alle'] = "Produkte/getProductByName"; $route['products/:jede'] = "Produkte/getCategoryByName";
InformationsquelleAutor Torez | 2009-08-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meine Antwort baut ein wenig auf Colin ' s Antwort.
Wenn ich spielte, um mit den Routen in CodeIgniter ich kam zu dem Schluss, dass die Reihenfolge der Routen wichtig war. Wenn es findet die erste route, die es nicht tun, die anderen Routen in der Liste. Wenn Sie nicht finden, jede gültige Routen, dann wird es Griff die default-route.
Meine Routen, die ich spielte mit meinem speziellen Projekt gearbeitet, wie folgt:
Wenn ich in "http://localhost/index.php/search/1234/4321" Es wäre an Haupt - /suchen, und ich kann dann mit
$this->uri->segment(2);
zum abrufen der1234
.In deinem Szenario würde ich versuchen (Reihenfolge ist wichtig):
Ich weiß nicht genug, um die route so, wie Sie wollen (
products/$1/getProductByName/$2
), aber ich bin mir nicht sicher, wie Sie würde einen controller zum verarbeiten dieser besonderen form der URI. Mit der$this->uri->segment(n);
Aussagen wie erwähnt von Colin in Ihrem controller, sollten Sie in der Lage, das zu tun, was Sie wollen.InformationsquelleAutor Stephen Perelson
Sollten Sie die URI-Klasse zum abrufen der "docupen" und "rc805" - Segmente von Ihrem url. Sie können dann diese Werte verwenden, in welcher die Funktionen, die Sie benötigen.
Zum Beispiel, wenn Sie Ihre url ist http://www.yoursite.com/products/docupen/rc805 verwenden Sie den folgenden in Ihre Produkte-Controllers zum abrufen der Segmente und weisen Sie diese Variablen:
Dann können Sie mit $category und $ - Produkt, aber Sie müssen.
InformationsquelleAutor Colin Brock
CodeIgniter Strecken nicht gut mit regex. Unterstützt werden Sie, nicht ich kann nie bekommen Sie zu arbeiten. Es wäre viel einfacher, Sie zu fangen, wie dies
InformationsquelleAutor Zack