实际上在使用 TbMenu 小部件时 url 路由存在一些问题,我在访问模块控制器时使用 /moduleId/ControllerId/ActionId 的格式,这是一个示例
<?php $this->widget('bootstrap.widgets.TbNavbar', array(
'type'=>'inverse', // null or 'inverse'
'brand'=>'mysite',
'brandUrl'=>'#',
'collapse'=>true, // requires bootstrap-responsive.css
'items'=>array(
array(
'class'=>'bootstrap.widgets.TbMenu',
'items'=>array(
array('label'=>'Home','url'=>array('/site/index'), 'active'=>true),
array('label'=>'About', 'url'=>array('/site/page')),
array('label'=>'Contact us','url'=>array('/site/contact')),
),
),
'<form class="navbar-search pull-left" action=""><input type="text" class="search-query span2" placeholder="Search"></form>',
array(
'class'=>'bootstrap.widgets.TbMenu',
'htmlOptions'=>array('class'=>'pull-right'),
'items'=>array(
array('label'=>'Sign in', 'url'=>'/user/auth','visible'=>Yii::app()->user->isGuest),
'---',
[b] array('label'=>'Profile', 'url'=>'/user/user','visible'=>!Yii::app()->user->isGuest, 'items'=>array([/b]
[b]array('label'=>'Settings', 'url'=>'user/user/index'),[/b]
[b]array('label'=>'Logout', 'url'=>'user/user/logout')[/b],
)),
),
),
),
最后三行是导致问题的原因,当我在点击主页、页面、联系我们(使用由 Yii 自动生成的站点控制器操作)后尝试访问这些链接时,路由被附加到现有的url 而不是为模块创建一个新的 url,例如,如果我在主页上(点击主页后它有这个作为 url localhost/mysite/index.php/site/index)**它给了我这个 url localhost/mysite /index.php/site/index/user/user/index,如果我再次使用这个作为 url 的相同链接,它会给我 **localhost/mysite/index/user/user/index/user/user/index如果我再次单击它会一次又一次地添加另一个..但最奇怪的是它与CMenu一起工作正常,这是CMenu的片段,工作正常,
<?php $this->widget('zii.widgets.CMenu',array(
'items'=>array(
array('label'=>'Home', 'url'=>array('/site/index')),
array('label'=>'About', 'url'=>array('/site/page', 'view'=>'about')),
array('label'=>'Contact', 'url'=>array('/site/contact')),
array('label'=>'Login', 'url'=>array('//user/auth'), 'visible'=>Yii::app()->user->isGuest),
array('label'=>'Logout ('.Yii::app()->user->name.')', 'url'=>array('//user/user/logout'), 'visible'=>!Yii::app()->user->isGuest),
array('label'=>'My profile ', 'url'=>array('/user/user/'), 'visible'=>!Yii::app()->user->isGuest),
),
)); ?>
我假设这可能是由于这些链接是子菜单这一事实引起的,但我不确定,因为这些链接中的第一个不是子菜单并且有同样的问题!再次感谢