我正在学习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时,它应该可以正常工作并打印“关于”
答案 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得到了小写。
这会回答你的问题吗?