2009-06-17 4 views
0

Kohana stellt automatisch auf URLs wie soGibt es eine generische Möglichkeit, URLs in Kohana zu routen, wenn das Bindestrichzeichen darin enthalten ist?

http://www.example.com/controller/method/argument1/argument2/etc

Jetzt möchte ich den Strich verwenden, um meine Worte in der URL zu trennen, und ich habe eine Adresse wie so

http://www.example.com/business-hub

Meine Controller heißt BusinessHub_Controller. Was mich nervt, ist für/business-hub/um den BusinesHub Controller zu finden, ich muss einen eigenen Eintrag in die routes.php im application/config Ordner hinzufügen. Es scheint auch, ich muss eine für jede Methode hinzufügen, die wirklich nervig ist. Zum Beispiel, hier ist ein Auszug,

$config['business-hub'] = 'businesshub/index/'; 

$config['business-hub/logout'] = 'businesshub/logout'; 

$config['business-hub/media-releases'] = 'businesshub/mediareleases'; 

Offensichtlich ist dies wirklich ärgerlich. Gibt es trotzdem kann ich Kohana sagen die URL in das camelcase Namen zu konvertieren, so etwas wie

$urlController = 'business-hub'; 

$correctController = str_replace('-', ' ', $urlController); 

$correctController = ucwords($correctController); 

$correctController = str_replace(' ', null, $correctController); 

$correctController = $correctController . '_Controller'; 

Antwort

2

Anstatt nur Bindestriche zu entfernen, würde ich sie in Unterstriche umwandeln; und ich würde es mit einem Haken machen. Stellen Sie sicher, dass Hooks in config/config.php aktiviert sind, und erstellen Sie dann eine Datei in Hooks mit dem Namen theslashes_to_undscores.php:

+0

Das sieht vielversprechend aus! Ich habe bereits einen 404-Hook und einen Standard-Controller-Hook, also sollte dies ein Kinderspiel sein. – alex

+0

Arbeitete großartig - du bist der Mann! – alex

0

Für die Variante camelcase Ich weiß nicht, aber so etwas wie dies sollte

$config['(a-z)+-?(a-z)*/(a-z)+-?(a-z)*'] = '$1$2/$3$4'; 

Als der Strecke arbeiten Teil in Kohana ist ein regulärer Ausdruck.

Dies ist natürlich streng auf die von Ihnen zur Verfügung gestellten Fälle beschränkt.

Verwandte Themen