我想在布局中创建一个菜单,其中的项目链接到其他不同的模块。
e.g: 项目“产品”链接到产品模块中的操作,项目“服务”链接到服务模块中的操作。
设置'url'=>('product/<controllerID>/<actionID>')
和'url'=>('service/<controllerID>/<actionID>')
时无效。因为一旦我们进入产品模块并点击“服务”菜单,网址就会变为
index.php?r=product/service/<controllerID>/<actionID>
而不是
index.php?r=service/<controllerID>/<actionID>
,这将是404错误。 (当然,因为服务模块不在产品模块中,但URL看起来像这样)。
对此有何解决方案?
答案 0 :(得分:3)
查看createUrl()
文档:
网址路由。这应该是'ControllerID / ActionID'的格式。如果ControllerID不存在,则当前控制器ID将以路由为前缀。如果路由为空,则假定它是当前操作。如果控制器属于模块,则模块ID将以路由为前缀。 (如果您不想要模块ID前缀,则路径应以斜杠开头'/'。)
最后一行告诉我们一切。最好的办法是使用/
开始所有路线:
'url'=>array('/<moduleID>/<controllerID>/<actionID>')
答案 1 :(得分:1)
检查
'url'=>$this->createUrl('/<moduleId>/<controllerID>/<actionID>')