2009-11-30 117 views
2

我使用的Kohana V3对于web项目,今天我发现自己写的:的Kohana 3:使用维护的路由

echo Html::anchor('user/view/'.$user->id, "See user's profile"); 

如果我重命名用户控制器action_view方法,链接会破碎。为了避免这种情况,我创建的用户模型,返回用于查看用户的配置文件的URL功能:

echo Html::anchor($user->url_view(), "See user's profile"); 

还有另一个(清洁剂)的方式来做到这一点(类似Django的url(){% url %})?附注:请原谅我的英语。

回答

7

是的,你想要使用路由名称反向路由。尝试这样的:

echo Html::anchor(
    Route::get('your_route_name')->uri(array('id'=>$user->id)), 
    "See user's profile" 
); 
+1

非常感谢,我不知道路线类。 – dusan 2009-12-01 00:05:15

0

你需要什么叫做反向路由。你有一个路径“名字”(最终带有参数),并且你将它与一个模块/动作对或任何/路径相关联。

然后您使用此路由名称而不是直接控制器/操作路径,以便您可以随时更改操作的名称。

here's a page that describes this。请注意,在kohana 2.x反向路由不支持(所以当他提到2.3时,他真的意味着3.x)

+2

你是正确的反向路由,但该链接的例子已过时。最好的资源是官方用户指南:http://v3.kohanaphp.com/guide/和非官方wiki:http://kerkness.ca/wiki/doku.php – rick 2009-11-30 22:35:38