2011-12-28 149 views
2

我正在学习Yii并陷入了URL路由问题。 我有一个控制器如下yii框架:网址路由

class PageController extends Controller 
{ 
public function actionIndex() 
{ 

    echo 'index'; 
} 
    public function actionGetPage($page = '') 
{ 
      echo $page; 
} 

和配置/ main.php

'urlManager'=>array(
     'urlFormat'=>'path', 
     'rules'=>array(
          'page'=>'page/index', 
          '<controller:\w+>/<id:\d+>'=>'<controller>/view', 
      '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', 
      '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', 
     ), 
    ), 

我怎么可以设置URL规则所以当我使用http://localhost/page/About它应该工作,并打印“关于”

+0

尝试在规则的底部添加'page/'=>'page/getPage',也许阅读http://www.yiiframework.com/doc /guide/1.1/en/topics.url – 2011-12-28 01:45:55

回答

8

在办法做到这一点: 在你的路由配置,你应该是这样的:

'page/<key>' => 'page/index', 

,并定义的actionIndex()如下:

public function actionIndex($key) { 
    echo $key; 
... 

注意所要求的额外的参数actionView ...。这将与URL中使用的相同。

0

您是否正在设法处理所有页面?或者只是为了让关于页面工作?

如果你这样做:

public function actionAbout() { 
    // code goes here 
} 

是获取actionAbout称为将在本地主机/网页访问视图/约

页面控制器是什么使/页/工作和/约由您的行为的名称定义。因此,该操作之后的任何内容都将成为URL中的名称。因此:

public function actionTestingThis() { 
    // code goes here 
} 

将可访问在/页/ testingThis Yii确实camelcase,所以在TestingThis的第一个T获得小写。

这是否回答你的问题?