yii友好的模块网址不起作用

时间:2014-04-23 09:58:26

标签: yii

我创建了一个名为 calculator 的模块,并尝试为其创建freindly网址。

这是我的代码

'<action:(calc1|calc2|calc3)>' => '/calculator/<action>',

视图文件位于

modules/calculator/view/default/pages/calc2.php

当我输入我的地址栏时

localhost/dev/cal2

我收到此错误

Error 404
Unable to resolve the request "calculator/calc2".

在我的控制器中我有这个

class DefaultController extends Controller
{

    public function actions() {
       return array(
            'page' => array('class' => 'CViewAction'),
        );
    }

    public function actionIndex()
    {
        $this->render('index');
    }

}

默认页面显示我何时转到http://localhost/dev/calculator,但模块中的内页没有。

这是我的正则表达式

'<view:(about|terms|faq|privacy)>' => 'site/page',
'<action:(contact|login|logout)>' => 'site/<action>',
'<fileName:(calc1|calc2|calc3)>' => '/calculator/default/page/view/<fileName>',
'<action:(registration|create)>' => 'user/<action>',
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',

知道我做错了什么?

2 个答案:

答案 0 :(得分:1)

为了使用page操作,您的网址应解析为/<module>/<controller>/page/view/<fileName> fileNamecalc1calc2等。因此,在您的情况下,您的规则应该是:

'<fileName:(calc1|calc2|calc3)>' => '/calculator/default/page/view/<fileName>',

参考:http://www.yiiframework.com/wiki/22/how-to-display-static-pages-in-yii/

答案 1 :(得分:0)

首先,您需要在计算器控制器中定义您的操作:

class CalculatorController extends Controller
{
    public function actionCalc1()
    {
        $this->render('calc1');
    }

    public function actionCalc2()
    {
        $this->render('calc2');
    }

    public function actionCalc3()
    {
        $this->render('calc3');
    }
}

当然,您需要更改视图路径,然后在键入浏览器<your domain>/calculator/calc2时看到一些内容。