Link Search Menu Expand Document

以下是Go API预览, 查看自动生成的api文档

内容列表
  1. 获取内容
    1. 查询一个内容
    2. 查询列表
    3. 查询子树
    4. 查询用户角色
  2. 操作内容
  3. 权限
  4. 数据库
    1. 条件
    2. 数据库层面的查询
    3. 数据库层面的操作
  5. 工具
  6. 日志 & 调式

获取内容

包 core/query

注: 所有的查询都会使用像下面的条件语法

ids := []int{3, 4, 5, 7, 9, 10}
condition := db.Cond("id", ids).Cond("l.depth", 2).Cond("author", 1).Sortby("modified desc").Limit(0, 2)

查询一个内容

函数 描述
FetchByID 通过id(location id)查询一个内容
FetchByCID 通过内容id查询一个内容
Fetch 通过条件查询一个内容
FetchByUID 通过location唯一标识符查询一个内容
FetchByCUID 通过内容唯一标识符查询一个内容

查询列表

函数 描述
SubList 查询子内容列表, 考虑权限
ListWithUser 查询子内容列表, 考虑权限
Children 查询直接子内容列表(只有一层),考虑权限
List 查询列表, 不考虑权限

查询子树

函数 描述
SubTree 查询子树

查询用户角色

函数 描述
UserRole 查询用户角色

操作内容

包core/handler

操作内容

函数 描述
Create 创建内容
Update 更新内容
Move 移动内容
DeleteByID 根据id删除内容
DeleteByCID 根据内容id删除内容
DeleteByContent 删除一个已经给的内容

用户

函数 描述
CanLogin 查看用户是否能登陆
Enable 启用/禁用用户

权限

包 core/permission

函数 描述
HasAccessTo 查看一个用户是否有某个操作的权限
CanRead 查看一个用户可读取某个内容
CanUpdate 看一个用户可更新某个内容
CanDelete 看一个用户可删除某个内容
Fetch policies and access  
GetUserAccess 取得某个用户的限制(limit)列表
GetUserPolicies 取得用户的策略
Operations  
AssignToUser 把角色分配到用户上
RemoveAssignment 把角色从某个用户中移除

数据库

包 core/db

条件

一个条件包含如下信息: 属性, 操作, 值(例如. “id > “, 10). 操作 ‘=’, ‘in’可忽略. 值可以是基本数据类型, 也可以是struct, 但需要实现database.sql.driver.Valuer接口.

目前支持的操作: ">", ">=", "<", "==", "<=", "!=", "=", "in", "like".

注: “==” 用于连接查询.

多个条件时使用面向方法的使用风格:

//以下两个是一样的, 注: 当使用'in/like'时, 必须前面一个空格(如"a like")
db.Cond("id>", ids)
db.Cond("id >", ids)

//id等于3
db.Cond("id", 3)

//在1, 3中
db.Cond("id", []int{1, 3})

//id在1, 3中,而且author等于1
db.Cond("id", []int{1, 3}).Cond("author", 1)

点击这里查看典型的条件例子

函数 描述
Cond 创建条件
EmptyCond 创建空条件
TrueCond 创建true条件
FalseCond 创建false条件
Condition struct  
Cond 与And&Cond相同
And 相当于And, 把自己作为第一参数
Or 相当于Or, 把自己作为第一参数
Sortby 排序
Limit 用于分页
WithCount 总包含计数信息, 不管有没有分页

数据库层面的查询

有两种实体(entity): 内容实体和一般实体. 一个内容实体可能来自于多个数据表, 但一个一般实体基本上来自一于一个表.

如果你查询一般表, 推荐使用BindEntity. 你可以把结果绑定到struct或者匿名结构(anonymous struct). 除此之外, 还可以用 db.Datamap/DatamapList, 它们可以直接返回一个表, 而不需要创建结构. 点击下面的 BindEntity 链接查看更多例子

函数 描述
BindContent 根据条件绑定到内容变量
CountContent 根据条件内容计数
BindEntity 根据条件绑定到实体变量
Count 根据条件实体计数
BindContentWithQuery 根据查询(Query)绑定到内容变量
BindEntityWithQuery Bind conentent(s) with a query

数据库层面的操作

以下是底层的数据操作. 内容操作建议通过内容的api进行(core/handler), 内容的api包含了验证, 权限, 关系, 缓存更新, 版本等.

函数 描述
Insert 插入记录
Update 更新记录
Delete 删除记录

工具

包 core/util

日志 & 调式

包 core/log