我在 Yii 中整理了一个菜单(我第一个使用它的项目),如下所示:
$this->widget('zii.widgets.CMenu',array(
'items'=>array(
array('label'=>'Home', 'url'=>array('/')),
array('label'=>'Examples', 'url'=>array('/examples')),
array('label'=>'Contact', 'url'=>array('/contact')),
array('label'=>'FAQ', 'url'=>array('/faq')),
array('label'=>'Blog', 'url'=>array('/blog')),
array('label'=>'Order', 'url'=>array('/order')),
),
));
这些 URL 路径中的每一个,例如/examples都是在我的配置中定义的路由,因此它看起来不像site/examples。
对于主页链接,我试图让它只链接到网站的根级别。显然,CMenu 小部件首先通过CHtml::normalizeUrl()传递 URL ,最终使其指向当前页面。因此,如果我在示例页面上,主页链接指向/examples。
这就是 normalizeUrl() 所说的:
如果输入参数为空字符串,则返回当前请求的 URL。
如果输入参数是非空字符串,则将其视为有效 URL,将不作任何更改地返回。
如果输入参数是一个数组,则将其视为控制器路由和 GET 参数列表,并调用 CController::createUrl 方法创建 URL。
我尝试传递一个空字符串,它最终按预期指向当前请求 URL。我试过传递“/”,它是一个非空字符串,它仍然指向当前的请求 URL。我也尝试将它传递给一个数组,但它会trim() expects parameter 1 to be string, array given
因为 CMenu 需要一个字符串而死掉。
我正在尝试以 Yii 的方式做事,但如果它不能解决像返回主页这样简单的问题,我真的打算让菜单保持静态。
TL;DR如何让 Yii 中的 CMenu 小部件创建指向“/”或基域的链接?