Frage

Ich habe eine Methode in meinem Benutzer ähnliche Steuerung an:

function members($type = null, $category = null) { ... }

Beide params sind optional und können zusammen oder allein verwendet werden.

So mit dem folgenden Weg.

Router::connect('/members/*', array('controller' => 'users', 'action' => 'members'));

http://example.com/users/members erfolgreich wird http://example.com/members.

Leider ist die folgende nicht funktionieren

http://example.com/members/type:cat
http://example.com/members/category:dog
http://example.com/members/type:cat/category:dog

Wie könnte ich einrichten meine Routen, so dass sie alle arbeiten richtig?

War es hilfreich?

Lösung

Benannte Parameter sind nicht automagicaly die Aktion abgebildet. Sie können sie entweder erhalten durch den Aufruf

  

$ this-> passedArgs [ 'type'] oder $ this-> passedArgs [ 'Kategorie']

oder durch den dritten Parameter im Router mit :: connect:

Router::connect(
    '/members/*',
    array('controller' => 'users', 'action' => 'members'),
    array(
        'pass' => array('type', 'category')
    )
);

http://book.cakephp.org/view/46/Routes-Configuration

Andere Tipps

Versuchen Sie es mit

Router::connect('/members/type\:(.*)', array('controller' => 'users', 'action' => 'members_type'));
Router::connect('/members/category\:(.*)', array('controller' => 'users', 'action' => 'members_category'));
Router::connect('/members/type\:(.*)/category:(.*)', array('controller' => 'users', 'action' => 'members_type'));

Beachten Sie, dass ich es nicht testen, aber ich glaube, Sie müssen den Doppelpunkt entkommen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top