Kohana 3: utiliser des routes maintenables
Question
J'utilise Kohana v3 pour un projet Web et aujourd'hui je me suis retrouvé à écrire ceci:
echo Html::anchor('user/view/'.$user->id, "See user's profile");
Si je renomme la méthode action_view
dans le contrôleur d'utilisateur, le lien sera brisé. Pour éviter cela, j'ai créé une fonction dans le modèle Utilisateur qui renvoie l'URL utilisée pour afficher le profil de l'utilisateur:
echo Html::anchor($user->url_view(), "See user's profile");
Il existe un autre moyen (plus propre) de procéder (comme le url ()
et le {% url%}
de Django?
PS: Excusez mon anglais.
La solution
Oui, vous souhaitez inverser le routage en utilisant le nom de l’itinéraire. Essayez quelque chose comme ça:
echo Html::anchor(
Route::get('your_route_name')->uri(array('id'=>$user->id)),
"See user's profile"
);
Autres conseils
De quoi avez-vous besoin est appelé routage inverse. vous avez un itinéraire " nom " (avec éventuellement des paramètres) et vous l'associez à un couple module / action ou à un chemin
Ensuite, vous utilisez ce nom de route au lieu du chemin d'accès contrôleur / action direct afin de pouvoir modifier le nom des actions à votre guise.
voici une page qui décrit cette . sachez que dans kohana 2.x, le routage inverse n'est pas pris en charge (ainsi, lorsqu'il fait référence à 2.3, il signifie vraiment 3.x)