// PostController.php
class PostController extends Controller {
public function actionCreate() {
...
}
public function actionView() {
...
}
}
1、post/index.html 或 index.php?r=post/index
控制器ID为post操作方法为index,对应文件为:/controllers/PostController.php 里面的 actionIndex 方法
2、post/view.html?id=1 或 index.php?r=post/view&id=1
控制器ID为post操作方法为view,对应文件为:/controllers/PostController.php 里面的 actionView 方法,参数为id=1
3、admin/user/list.html 或 index.php?r=admin/user/list
控制器ID为admin/user操作方法为list,对应文件为:/controllers/admin/UserController.php 里面的 actionList 方法
namespace frontend\controllers;
use Yii;
class DefaultController extends \common\controllers\BaseMallController {
public function actionIndex()
{
echo "hello world";
}
}
1、第一行是命名空间,frontend\controllers代表了该控制器文件所在的目录。
2、第二行是引入Yii,Yii是系统底层的一个基类,我们在后面的章节会继续讲到该类的使用。(实际上这行代码对该控制器文件来讲,可有可无)。
3、第三行是定义类名,DefaultController是控制器的类名,这个必须要保证跟控制器的文件名保持一致,这样才能实现懒加载。然后该控制器类extends(继承)一个父类\common\controllers\BaseMallController,接下来就是实现一个public类型的操作方法 actionIndex 我们在操作方法内就可以编写自己需要实现的功能,比如输出一个字符串,显示一个视图文件,执行某个逻辑等。
注意:action是保留字,全部是小写字母。控制器名和操作方法名首字母要大写。
1、BaseMallController代表的是Web应用商城基类,该类直接继承Yii的\yii\web\Controller类。商城基类会做一些请求的初始化操作,或者控制器的公共操作,如:安装判断,视图初始化,访客初始化等,还有公共actions也是部署在该类。
2、BaseUserController代表的是商城用户基类,该类继承BaseMallController类。当我们的控制器需要用户登录才能访问的可以继承此类。该父类会完成一些用户验证方面的操作。
3、BaseSellerController代表的是商城卖家基类,该类继承BaseUserController类。当我们的控制器需要卖家身份才能访问的可以继承此类。该父类会完成一些卖家身份验证方面的操作。
4、BaseAdminController代表的是商城后台管理员基类,该类继承BaseMallController类。当我们的控制器需要是后台管理员身份才能访问的可以继承此类。该父类会完成一些后台管理员身份验证方面的操作。