【发布时间】:2011-02-05 18:44:18
【问题描述】:
嘿。
我打算为我的菜单组件创建一个“当前”类,用于创建菜单。要查找当前课程,建议使用$this>getContext()->getRouting()->getCurrentRouteName();。为此,我必须为将要存在的所有菜单元素设置路线。
假设到目前为止我有两个元素,一个用于首页,一个用于客户。每当我浏览首页时,无论什么动作和参数,我都希望上面的代码返回“首页”。客户也是如此。
我现在对客户的规则如下: 路由.yml
顾客: 参数:{模块:客户}我认为设置 url 并不重要,我已经指定模块为客户。无论使用何种操作,菜单元素都应具有“当前”类。
我如何链接:
if ($current == $name){ echo link_to($name, $link, array("class" => "selected")); }别的 { 回声链接到($名称,$链接); }现在转到“customer/some_action”的链接 ($link) 不起作用,它们仅显示为“/”。所以我想在 $link 周围使用 url_for,这也不起作用,同样的结果。
我的路由规则一定有问题...因为当我手动输入 /customer/new 时,我可以看到该页面。如果我从模板中写出$this>getContext()->getRouting()->getCurrentRouteName();,它会显示默认值。所以我的规则绝对行不通。我也尝试过其他规则,但没有人工作。诀窍是制定一个适用于模块 customer 下任何事物的规则。
是的,我在更改每条规则后都会清除缓存。
非常感谢。
编辑: 我使路由规则起作用,但不适用于客户模块下的所有操作。我必须为每个动作制定规则。但是,链接仍然断开,它们显示“/”。
我的新规则:
客户索引: 网址:/:模块 参数:{模块:客户,操作:索引} 新客户: 网址:/:模块/:动作 参数:{模块:客户,操作:新}这些链接都不起作用:
echo link_to("Customers", "@customer_index", array("module" => "customer"));
echo link_to("New customer", "@customer_new", array("module" => "customer"));
【问题讨论】:
标签: symfony1 url-routing