Domanda

Ho un metodo nel mio controller utenti simile a:

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

Entrambi i parametri sono opzionali e possono essere utilizzati insieme o da soli.

Quindi, con il seguente itinerario.

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

http://example.com/users/members diventa successo http://example.com/members.

Purtroppo il seguente non funzionano

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

come ho potuto configurare miei percorsi in modo che tutto il lavoro correttamente?

È stato utile?

Soluzione

parametri denominati non sono mappati automagicaly all'azione. È possibile ottenere loro chiamando

  

$ this-> passedArgs [ 'type'] o $ this-> passedArgs [ 'categoria']

oppure utilizzando il terzo parametro nel Router :: Connect:

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

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

Altri suggerimenti

Prova con

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'));

Si noti che non ho la prova, ma penso che si deve sfuggire i due punti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top