内容库操作
获取内容库列表
ContentGroup.find(options)
参数说明
options:
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
| withCount | bool | 否 | false | 是否返回 total_count |
| offset | int | 否 | 0 | 偏移量 |
| limit | int | 否 | 20 | 最大返回条数 |
请求示例
try {
ContentList data = await ContentGroup.find(withCount: true, offset: 0, limit: 20);
} catch (e) {
// 操作失败
}
返回示例
返回 ContentList 类型。详见数据类型章节。
获取内容库详情
ContentGroup.get(contentGroupID)
参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| contentGroupID | int | 是 | 内容库 ID |
请求示例
try {
int contentGroupID = 1513076211190694;
ContentGroup data = await ContentGroup.get(contentGroupID);
print(data.id);
} catch (e) {
// 操作失败
}
返回示例
返回 ContentGroup 类型。详见数据类型章节。
内容操作
以下操作都需指明操作的内容库,方法如下:
ContentGroup myContentGroup = new ContentGroup(contentGroupID)
参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| contentGroupID | int | 是 | 内容库 ID |
获取内容详情
myContentGroup.getContent(richTextID, select: select, expand: expand)
参数说明
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| richTextID | int | 是 | 内容 ID |
| select | String or List |
否 | 指定返回字段 |
| expand | String or List |
否 | 展开字段 |
如果有自定义字段,则一并返回。
visit_count 字段,只有在已经开通了“文章统计”(“阅读数支持”)功能,且该文章的阅读数大于 0 时,才会返回。
“文章阅读数统计”是一个异步的操作,统计结果略有延迟。
请求示例
try {
int contentGroupID = 1513076211190694;
int richTextID = 1514529306082815;
ContentGroup contentGroup = new ContentGroup(contentGroupID);
Content data = await contentGroup.getContent(richTextID);
} catch (e) {
// 操作失败
}
返回示例
返回 Content 类型。详见数据类型章节。
获取符合筛选条件的内容总数
myContentGroup.count()
try {
int contentGroupID = 1513076211190694;
ContentGroup contentGroup = new ContentGroup(contentGroupID);
Query query = new Query();
query.where(Where.arrayContains('categories', [1513076252710475]));
int data = await contentGroup.count(query: query);
} catch (e) {
// 操作失败
}
查询,获取内容列表
myContentGroup.query(options)
参数说明
options:
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
| query | Query | 否 | null | 查询条件 |
| withCount | bool | 否 | false |
是否返回 total_count |
内容查询与数据表查询方法一致。
> myContentGroup.query() 接口返回的内容中,不包含 content 字段。
请求示例
// 查找该内容库下的所有内容
contentGroup.query();
// 查找该内容库下在指定分类下的内容
try {
int contentGroupID = 1513076211190694;
ContentGroup contentGroup = new ContentGroup(contentGroupID);
Query query = new Query();
query.where(Where.arrayContains('categories', [1513076252710475]));
ContentList data = await contentGroup.query(query: query);
print(data.contents);
} catch (e) {
// 操作失败
}
筛选字段
select 使用方法可以参考数据表 - 字段过滤小节
扩展字段
expand 使用方法可以参考数据表 - 字段扩展小节
假设 _richtextcontent 表中有一个类型为 pointer 的字段,名称为 pointer_test_oder, 指向了 test_order 表
请求示例 1
try {
ContentGroup contentGroup = new ContentGroup(contentGroupID);
Content data = await contentGroup.getContent(1513076305938456, expand: 'pointer_test_oder');
print(data.content);
} catch (e) {
// 操作失败
}
请求示例 2
try {
int contentGroupID = 1513076211190694;
ContentGroup contentGroup = new ContentGroup(contentGroupID);
Content data = await contentGroup.getContent(1513076305938456, expand: 'pointer_test_oder', select: ['title', 'pointer_test_oder']);
print(data.content);
} catch (e) {
// 操作失败
}
获取分类详情
myContentGroup.getCategory(categoryID)
OBJECT 参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| categoryID | int | 是 | 分类 ID |
返回参数
| 参数 | 类型 | 说明 |
|---|---|---|
| children | List | 子分类列表 |
| have_children | bool | 是否含有子分类 |
| id | int | 分类 ID |
| name | String | 分类名称 |
请求示例
try {
int contentGroupID = 1513076211190694;
ContentGroup contentGroup = new ContentGroup(contentGroupID);
ContentCategory data = await contentGroup.getCategory(1513076252710475);
} catch (e) {
// 操作失败
}
返回示例
返回 ContentCategory 类型。详见数据类型章节。
获取内容库分类列表
myContentGroup.getCategoryList()
请求示例
try {
int contentGroupID = 1513076211190694;
ContentGroup contentGroup = new ContentGroup(contentGroupID);
ContentCategoryList data = await contentGroup.getCategoryList();
print(data);
} catch (e) {
// 操作失败
}
分页与排序
内容查询的分页与排序操作和数据表分页与排序方法一致。
数据类型
Content
| 属性 | 类型 | 说明 |
|---|---|---|
| id | int | 内容 Id |
| title | String | 名称 |
| description | String | 描述 |
| cover | String | 封面 路径 |
| content | String | 实际内容 |
| group_id | int | 分组 Id |
| categories | List | 子类 |
| visit_count | int | 阅读数 |
| updated_at | int | 更新日期,unix 时间戳格式 |
| created_at | int | 创建日期,unix 时间戳格式 |
| created_by | int | 创建者 Id |
| name | String | 列表名称,仅在 find 时有值 |
ContentCategory
ContentCategory 表示内容所属的分类。
| 属性 | 类型 | 说明 |
|---|---|---|
| id | int | 分类 Id |
| name | String | 分类名 |
| haveChildren | bool | 是否有子类 |
| children | List | 子类列表,元素类型为 ContentCategory |
ContentList
ContentList 表示一次查询数据库所返回的内容列表以及元数据。
| 属性 | 类型 | 说明 |
|---|---|---|
| limit | int | 返回内容的最大个数 |
| offset | int | 返回内容的起始偏移值 |
| total_count | int | 内容总数,默认为 -1,表示该字段无效 |
| next | String | 下一页地址,若值为 null,表示当前为最后一页 |
| previous | String | 上一页地址,若值为 null,表示当前为第一页 |
| contents | List |
内容列表,每个元素为 Content 类型 |
返回结果默认不包含 total_count,如需获取该值可以在设置查询条件 Query 时,通过设置 query.withTotalCount(true) 来获取 total_count。详见获取记录总数
ContentCategoryList
ContentCategoryList 表示一次查询数据库所返回的内容分类列表以及元数据。
| 属性 | 类型 | 说明 |
|---|---|---|
| limit | int | 返回内容分类的最大个数 |
| offset | int | 返回内容分类的起始偏移值 |
| total_count | int | 内容分类总数,默认为 -1,表示该字段无效 |
| next | String | 下一页地址,若值为 null,表示当前为最后一页 |
| previous | String | 上一页地址,若值为 null,表示当前为第一页 |
| contents | List |
内容分类列表,每个元素为 ContentCategory 类型 |
返回结果默认不包含 total_count,如需获取该值可以在设置查询条件 Query 时,通过设置 query.withTotalCount(true) 来获取 total_count。详见获取记录总数
