yii框架:url路由

时间:2011-12-28 01:18:03

标签: yii

我正在学习Yii并进入了url路由问题。 我有一个控制器如下

class PageController extends Controller
{
public function actionIndex()
{

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

和config / 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>',
        ),
    ),

如何设置网址规则,以便当我使用http://localhost/page/About时,它应该可以正常工作并打印“关于”

2 个答案:

答案 0 :(得分:8)

在去的路上: 在您的路线配置中,您应该具有以下内容:

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

并按如下方式定义actionIndex():

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

请注意actionView所需的额外参数....这将与URL中使用的内容相同。

答案 1 :(得分:0)

您是否正在尝试创建一个处理所有页面的简单功能?或者只是让“关于”页面起作用?

如果你这样做:

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

可以在localhost / page / about

访问在actionAbout中调用的视图

页面控制器使/ page / work和/ about由您的操作名称定义。因此,操作后的任何内容都将成为URL中的名称。因此:

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

将可以在/ page / testingThis访问这个Yii确实是camelcase,所以TestingThis中的第一个T得到了小写。

这会回答你的问题吗?