我创建了一个名为 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>',
知道我做错了什么?
答案 0 :(得分:1)
为了使用page
操作,您的网址应解析为/<module>/<controller>/page/view/<fileName>
fileName
为calc1
,calc2
等。因此,在您的情况下,您的规则应该是:
'<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
时看到一些内容。