最简单的models实现

前章分析过控制器, models, meta验证器三者的关系. 这里讨论 models 的实现方式.

首先这里 models 只实现最简单的单表操作业务逻辑, 对于复杂逻辑还是单独写接口比较好.

TypePress 是通过定义 CURD 操作相关字段顺序来实现简单 models.

  1. // Users 表查询 可通过的 Fields, 注意次序是有优先级的
  2. Users.Q.Fields = []string{"User_id", "User_login", "User_pass", "Site", "User_nicename", "User_status"}
  3. // Users 表添加 可通过的字段值
  4. Users.A.Fields = []string{"User_login", "User_pass", "User_nicename", "Site"}
  5. // Users 表添加 必须要有的字段值, 这里和 Fields 完全一致
  6. Users.A.Exists = Users.A.Fields
  7. // Users 表更新 可设定的字段值
  8. Users.U.Fields = []string{"User_pass", "User_nicename", "Site", "User_status"}
  9. // Users 表更新 条件必须给定的字段值
  10. Users.U.Exists = []string{"User_id"}

很明显 FieldsExists 在不同的操作中所代表的含义是不同的.

基于简单的目标, models 中的代码都就是这些字段的定义. 执行代码的逻辑反而很简单这里就不贴了.