module id / module id /.../ controller id / action id
module id / directory / controller id / action id
admin/index
admin/site/index
优先选择module
命名:
PostManagerController => post-manager
actionTestData => test-data
AbcDefController => abc-d-ef
MYAdminModule => m-y-admin
流程:
module id / module id /.../ controller id / action id
->beforeAction->beforeAction...->runWithParams
afterAction<-afterAction<-afterAction
user组件,这里没有指定class,会使用Application中的配置
'user' => [
'identityClass' => 'commonmodelsUser',
'enableAutoLogin' => true,
],
yii::$app->user得到的是这个配置的类,不是commonmodelsUser类(yii::$app->user->identity才是)
加载数据的验证规则,Controller中的rules
var_dump($model->errors)
同一个模型,不同的场景需要不同的数据(属性),scenarios定义,验证指定的字段是否符合规则,忽略其他字段
继续自ActiveRecord和Model的区别,Model属性、验证、错误、场景,ActiveRecord继承自Model,增加对数据库表中字段的支持
设置module的布局文件:$this->layout='main';
false不使用布局文件,null使用父级的,file name使用指定文件
controller也可以设置布局文件,在init中执行
url:/admin/config绝对路径,admin/config从当前页面上一级拼接
模型从数据库中读数据,findOne等,填充到页面上显示;一次加载多个以减少查询数据库次数
$this->attributes利用反射得到所有公有属性,性能会耗一点,如果有其他方式指定就可以不用该方式