1、在CUrlManager::caseSensitive为false使路由对大小写不敏感
2、Yii实现两种类型的模型:表单模型(CFormModel的实例)和Active Record,二者均继承于相同的基类CModel
- 表单模型用于保持从用户的输入获取的数据。这些数据经常被获取使用,然后丢弃。例如,一个登录页面中,我们可以使用表单模型用于表示由由最终用户提供的用户名和密码信息。- Ative Record是一种用于通过面向对象风格抽象化的数据库访问的设计模式,每一个AR对象是一个CActiveRecord或其子类的实例。代表数据表中的一行,行中的字段对应AR对象中的属性
3、视图:布局、小物件、系统视图
- 小物件:CWidet或其子类的实例。它是一个主要用于表现数据的组件,小物件通常内嵌于一个视图来产生一些复杂而独立的用户界面。如一个日历小物件可以用于渲染一个复杂的日历界面。
- 系统视图:通常用于展示Yii的错误和日志信息,命名errorXXX表示错误号为XXX的CHttpException的视图
4、模块:一个独立的软件单元,包含模型、视图、控制器和其他支持的组件。看起来像一个应用,区别在于它不能但不部署,必须存在于一个应用里。可以无限级嵌套
5、规范
- 代码:类使用驼峰风格,变量名和函数名第一个单词全部小写,私有成员变量,下划线作为前缀。控制器一Controller结尾
- 数据库规范
- 数据库表名和列名都使用小写命名
- 名字中的单词应使用下划线分割
- 表名可以使用单数或者复数,但不要同时使用。
- 表名使用前缀
6、表单
下面是预定义的验证器别名的完整列表:
- boolean: CBooleanValidator 的别名,确保特性有一个 - - - - >CBooleanValidator::trueValue 或 CBooleanValidator::falseValue
值。 - captcha: CCaptchaValidator 的别名,确保特性值等于 CAPTCHA 中显示的验证码。
- compare: CCompareValidator 的别名,确保特性等于另一个特性或常量。
- email: CEmailValidator 的别名,确保特性是一个有效的 Email 地址。
- default: CDefaultValueValidator 的别名,指定特性的默认值。
- exist: CExistValidator 的别名,确保特性值可以在指定表的列中可以找到。
- file: CFileValidator 的别名,确保特性含有一个上传文件的名字。
- filter: CFilterValidator 的别名,通过一个过滤器改变此特性。
- in: CRangeValidator 的别名,确保数据在一个预先指定的值的范围之内。
- length: CStringValidator 的别名,确保数据的长度在一个指定的范围之内。
- match: CRegularExpressionValidator 的别名,确保数据可以匹配一个正则表达式。
- numerical: CNumberValidator 的别名,确保数据是一个有效的数字。
- required: CRequiredValidator 的别名,确保特性不为空。
- type: CTypeValidator 的别名,确保特性是指定的数据类型。
- unique: CUniqueValidator 的别名,确保数据在数据表的列中是唯一的。
- url: CUrlValidator 的别名,确保数据是一个有效的 URL。