Bonjour à tous,
Je bloque depuis hier sur une réécriture d'url avec des "parametres nommé" dans l'url :
Exemple : professionnels/recherche/theme:bien-etre-9/type:theme-anniversaire
Je voudrais que le résultat donne quelque chose comme ceci :
professionnels/recherche/nom-du-theme/theme-anniversaire
J'ai beau jouer avec les Router, je n'arrive pas à mes fins :
Router::connect(
'/:controller/:action/*',
array('controller' => 'professionnels', 'action' => 'recherche'),
array(
'named' => array(
'theme' => array('pass' => array('id','slug') , array('id' => '[0-9]+', 'slug' => '[a-z0-9\-]+')),
)
)
);
Si quelqu'un à déjà résolu ce genre de problème je suis preneur :-)
Router::connect(
'/professionnels/recherche/:theme-:id/:type',
array('controller' => 'professionnels', 'action' => 'recherche'),
array(
'pass' => array('theme','id', 'type') ,
'id' => '[0-9]+',
'theme' => '[a-z0-9\-]+',
'type' => '[a-zA-Z]+'
)
);
// Dans ton Controller Professionnels
public function recherche($theme = null, $themeId = null, $type = null) {
// du code ici...
}
Super merci! Ca marche du premier coup.
Cependant, dans le cas ou le type n'est pas renseigné ça ne fonctionne plus donc à défault de trouver mieux pour le moment j'ai créé 2 routes
Router::connect(
'/professionnels/:theme',
array('controller' => 'professionnels', 'action' => 'recherche'),
array(
'pass' => array('theme') ,
'theme' => '[a-z0-9\-]+'
)
);
Router::connect(
'/professionnels/:theme/:type',
array('controller' => 'professionnels', 'action' => 'recherche'),
array(
'pass' => array('theme', 'type') ,
'theme' => '[a-z0-9\-]+',
'type' => '[a-z0-9\-]+'
)
);