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

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

如果我重命名用户控制器action_view的方法,该链路将被打破。为了避免这种情况,我创建在用户模型中的函数,返回用于查看用户的配置文件的网址:

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

有另一种(清洁剂)的方式来做到这一点(类似Django的url(){% url %})?

PS:对不起,我的英语

有帮助吗?

解决方案

是的,你要扭转使用路由名称路由。尝试是这样的:

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

其他提示

你需要什么叫反向路由。你有一个路线“名称”(与最终的参数),而你是一个模块/动作对或有任何/路径相关联。

然后你使用这条路线名称,而不是直接的控制器/动作路径,所以你可以为你的未来像更改操作的名称。

<击> 这里的描述页面这。注意,在的Kohana 2.x的反向路由不支持(因此,当他是指2.3他确实意味着3.x的)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top