题
我使用的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的)击>
不隶属于 StackOverflow