Pregunta

Tengo un método en el que mis usuarios controlador similar a:

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

Los dos parametros son opcionales y se pueden utilizar juntos o por su cuenta.

Así, con el siguiente recorrido.

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

http://example.com/users/members se convierte en éxito http://example.com/members.

Por desgracia los siguientes no hacer el trabajo

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

¿cómo podría configurar mis rutas para que todo el trabajo correctamente?

¿Fue útil?

Solución

Los parámetros con nombre no se asignan automagicaly a la acción. O se puede obtener llamando

  

$ this-> passedArgs [ 'type'] o $ this-> passedArgs [ 'categoría']

o mediante el uso de la tercera parámetro en el Router :: connect:

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

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

Otros consejos

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

Tenga en cuenta que no he probado, pero creo que hay que escapar del colon.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top