jerry2801
(Jerry2801)
1
路由规则(所有的):
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
也是可以正常访问的~
wwwwwgq
(Wgq91here)
3
$this->createUrl('/site/page')
jerry2801
(Jerry2801)
4
return array(
'aboutus'=>array('site/page','defaultParams'=>array('view'=>'about')),
'systemMonitor'=>array('site/page','defaultParams'=>array('view'=>'systemMonitor')),
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
);
假如是这样的规则呢?
jerry2801
(Jerry2801)
5
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 的话,又不会匹配那条规则~
请教~
jerry2801
(Jerry2801)
6
我感觉在 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'=>array(
'user'=>array(
// 这实际上是默认值
'loginUrl'=>array('site/login'),
),
),
)
能帮你解决问题
pangjanne
(Pngjanne)
9
仅仅是标记一下。Yii论坛似乎不能收藏一个主题呀。