我正在使用Kohana v3进行网络项目,今天我发现自己写了这个:
echo Html::anchor('user/view/'.$user->id, "See user's profile");
如果我在用户控制器中重命名action_view
方法,则链接将被破坏。为了避免这种情况,我在User模型中创建了一个函数,该函数返回用于查看用户配置文件的URL:
echo Html::anchor($user->url_view(), "See user's profile");
还有另一种(更干净的)方法(类似于Django的url()
和{% url %}
)?
PS:请原谅我的英语。
答案 0 :(得分:7)
是的,您希望使用路由名称进行反向路由。尝试这样的事情:
echo Html::anchor(
Route::get('your_route_name')->uri(array('id'=>$user->id)),
"See user's profile"
);
答案 1 :(得分:0)
你需要什么称为反向路由。你有一个路由“名称”(最终带参数),你将它与模块/动作对或任何/路径相关联。
然后您使用此路由名称而不是直接控制器/操作路径,以便您以后可以根据需要更改操作的名称。
<击> here's a page that describes this。请注意,在kohana 2.x中不支持反向路由(因此,当他提到2.3时,他的确意味着3.x)