关于路由的默认参数小问题~

路由规则(所有的):


return array(

    'systemMonitor'=>array('site/page','defaultParams'=>array('view'=>'systemMonitor')),

    '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',

);

创建URL的代码:


$this->createUrl('/site/page',array('view'=>'systemMonitor'));

生成的url为:


/webmonitor/systemMonitor?view=systemMonitor

请问,如何去掉后面的


?view=systemMonitor

在地址栏直接敲:


/webmonitor/systemMonitor

也是可以正常访问的~

同问,呵呵


$this->createUrl('/site/page')


return array(

    'aboutus'=>array('site/page','defaultParams'=>array('view'=>'about')),

    'systemMonitor'=>array('site/page','defaultParams'=>array('view'=>'systemMonitor')),

    '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',

);

假如是这样的规则呢?


return array(

    '~overview'=>array('site/page','defaultParams'=>array('view'=>'systemMonitor')),

    '~<view:\w+>'=>'site/page',

    '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',

);

像上面的规则,我希望创建url时,使用:


Yii::app()->createUrl('',array('routeId'=>'~overview'));

不知道有没有这样的方法?

因为我使用


Yii::app()->createUrl('site/page',array('view'=>'systemMonitor'))

,生成的url是 /webmonitor/~overview?view=systemMonitor

假如不用 defaultParams 的话,又不会匹配那条规则~

请教~

我感觉在 CUrlRule 是否缺少了一个属性,如:

$requiredParams=array();


return array(

    '~overview'=>array('site/page','requiredParams'=>array('view'=>'systemMonitor')),

    '~<view:\w+>'=>'site/page',

    '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',

);

这样,假如浏览器地址为: /abc/~overview

就会解析到 site/page, 并有 $_GET[‘view’]=‘systemMonitor’;

创建url时:


Yii::app()->createUrl('site/page',array('view'=>'systemMonitor'));

就会生成 /abc/~overview

手册中:http://www.yiiframework.com/doc/guide/zh_cn/topics.auth

array(

......


'components'=&gt;array(


    'user'=&gt;array(


        // 这实际上是默认值


        'loginUrl'=&gt;array('site/login'),


    ),


),

)

能帮你解决问题

是不是搞错帖子了?

仅仅是标记一下。Yii论坛似乎不能收藏一个主题呀。

貌似是没有收藏,只有登记获取新帖通知~