2010-06-04 8 views
0

J'essaye de créer des contrôleurs séparés pour l'admin dans mon application. Jusqu'à présent, j'ai quelque chose comme ça:Concaténer les chaînes dans UrlMappings?

"/admin/article/$action?/$id?"(controller:"adminArticle") 
"/admin/comment/$action?/$id?"(controller:"adminComment") 

Et ainsi de suite pour tous les contrôleurs d'administration. Je voudrais le rendre plus simple, essayé:

"/admin/$controller?/$action?/$id?"(controller:"admin" + controller[0].toUpperCase() + controller[1..-1]) 

et

"/admin/$controller/$action?/$id?"(controller:"admin$controller") 

, mais aucune de ces solutions a fonctionné. Avez-vous une idée de comment rendre ces mappages plus dynamiques?

Répondre

0

Peut-être que vous ne devriez pas utiliser le mot "contrôleur". Je n'ai pas essayé, mais cela pourrait fonctionner:

"/admin/$contr/$action?/$id?"(controller:"admin$contr") // if first letter of contr is upper case 
+0

Non, j'ai déjà essayé, ça ne marche pas. – arnvald

1

Vous pouvez personnaliser la valeur du contrôleur si vous utilisez une fermeture.

/$mode/$contr"{ 
    action = "someAction" 
    controller = { 
    if (params.mode == "api") { 
     return params.contr+"API" 
    } 
    else { 
     return params.contr 
    } 
    } 
    constraints { 
    mode inList:["menu", "api"] 
    } 
} 

J'espère que cela aide!

Questions connexes