一、路由
有模块的情况下访问
http://hostname/index.php?r=模块/控制器/操作
没有模块的情况下访问
http://hostname/index.php?r=控制器/操作
二、命名规则
控制器命名规则
控制器仅包含英文小写字母、数字、下划线、中横杠和正斜杠。
控制器类使用首字母大写的驼峰法命名
路由控制器使用首字母小写使用中横线分割单词命名
路由中的控制器与控制器类的命名对应关系
article 对应 app\controllers\ArticleController;
post-comment 对应 app\controllers\PostCommentController;
admin/post-comment 对应 app\controllers\admin\PostCommentController;
adminPanels/post-comment 对应 app\controllers\adminPanels\PostCommentController.
三、创建控制器类
namespace app\controllers;
use yii\web\Controller;
class UserController extends Controller{
public function actionIndex(){
echo "index";
}
public function actionCreate(){
echo "create";
}
}
四、独立操作
例如创建UserController控制器的独立操作TestUserAction
第一步:控制器UserController类覆盖父类yii\web/Controller的actions方法。
在actions方法内用key-value的方式配置,key代表浏览器访问的操作名称,value代表TestUserAction操作所在的命名空间。
<?php
namespace app\controllers;
use yii\web\Controller;
class UserController extends Controller{
public function actions() {
return [
// 用类来申明"error" 操作
'error' => 'yii\web\ErrorAction',
// 用配置数组申明 "view" 操作
'view' => [
'class' => 'yii\web\ViewAction',
'viewPrefix' => '',
],
'test-user'=>'app\controllers\actions\TestUserAction',
];
}
}
第二步创建独立操作TestUserAction
在app/controllers创建actions文件夹用来存放独立操作的action
TestUserAction操作需要继承yii\base\Action并实现run()公共方法
namespace app\controllers\actions;
use yii\base\Action;
class TestUserAction extends Action{
public function run(){
return "TestUserAction";
}
}
测试独立操作
http://yii2.host.com/index.php?r=user/test-user