{% import "/js-sdk/macro/total_count.md" as totalCount %}
#内容库操作
{% ifanrxCodeTabs %}
wx.BaaS.ContentGroup.find(options)
{% endifanrxCodeTabs %}
参数说明
opions:
参数 | 类型 | 必填 | 默认 | 说明 |
---|---|---|---|---|
withCount | boolean | 否 | false | 是否返回 total_count |
offset | number | 否 | 0 | 偏移量 |
limit | number | 否 | 20 | 最大返回条数 |
请求示例
{% ifanrxCodeTabs %}
wx.BaaS.ContentGroup.find({withCount: true, offset: 0, limit: 20}).then(res => {
// success
}, err => {
// err
})
{% endifanrxCodeTabs %}
返回示例
res.data:
{
meta: {
limit: 20,
offset: 0,
total_count: 1,
next: null,
previous: null,
},
objects: [{
id: 1234567890,
name: '测试内容库',
}],
}
{% ifanrxCodeTabs %}
wx.BaaS.ContentGroup.get(contentGroupID)
{% endifanrxCodeTabs %}
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
contentGroupID | Number | 是 | 内容库 ID |
请求示例
{% ifanrxCodeTabs %}
let contentGroupID = 1513076211190694
wx.BaaS.ContentGroup.get(contentGroupID).then(res => {
// success
}, err => {
// err
})
{% endifanrxCodeTabs %}
返回示例
res.data:
{
id: 1234567890,
name: '测试内容库',
}
以下操作都需指明操作的内容库,方法如下:
{% ifanrxCodeTabs %}
let MyContentGroup = new wx.BaaS.ContentGroup(contentGroupID)
{% endifanrxCodeTabs %}
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
contentGroupID | Number | 是 | 内容库 ID |
MyContentGroup.getContent(richTextID)
参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
richTextID | Number | 是 | 内容 ID |
返回参数
参数 | 类型 | 说明 |
---|---|---|
categories | Number Array | 内容分类 |
content | String | 内容详情 |
cover | String | 封面图 url |
created_at | Number | 创建时间 |
created_by | Number | user ID |
description | String | 摘要 |
group_id | Number | 内容库 ID |
id | Number | 内容 ID |
title | String | 内容标题 |
update_at | Number | 更新时间 |
visit_count | Number | 文章阅读数 |
info 如果有自定义字段,则一并返回。
visit_count 字段,只有在已经开通了[“文章统计”(“阅读数支持”)功能](https://cloud.minapp.com/dashboard/#/app/[[app_id | addSlashPostfixIfNotEmpty]]settings/info/),且该文章的阅读数大于 0 时,才会返回。
“文章阅读数统计”是一个异步的操作,统计结果略有延迟。
请求示例
{% ifanrxCodeTabs %}
let contentGroupID = 1513076211190694
let richTextID = 1514529306082815
let MyContentGroup = new wx.BaaS.ContentGroup(contentGroupID)
MyContentGroup.getContent(richTextID).then(res => {
// success
}, err => {
// err
})
{% endifanrxCodeTabs %}
返回示例
res.data:
{
categories: [1513076252710475],
content: "<p>\b 该片讲述了伊娅不满父亲的恶作剧</p>",
cover: "https://cloud-minapp-1131.cloud.ifanrusercontent.com/1donykIpnuvcRiAX.jpg",
created_at: 1513076305,
created_by: 16042162,
description: "iphoneX 发布",
group_id: 1513076211190694,
id: 1513076305938456,
title: "iphone X",
updated_at: 1513076364,
visit_count: 10
}
MyContentGroup.count()
info SDK v3.0 新增
{% ifanrxCodeTabs %}
let query = new wx.BaaS.Query()
query.arrayContains('categories', [1513076252710475])
MyContentGroup.setQuery(query).count().then(num => {
// success
console.log(num) // 10
}, err => {
// err
})
{% endifanrxCodeTabs %}
MyContentGroup.find(options)
参数说明
options:
参数 | 类型 | 必填 | 默认 | 说明 |
---|---|---|---|---|
withCount | boolean | 否 | false |
是否返回 total_count |
{{totalCount.withCountTips()}}
内容查询与数据表查询方法一致。
info
MyContentGroup.find()
接口返回的内容中,不包含content
字段。
请求示例
{% ifanrxCodeTabs %}
// 查找该内容库下的所有内容
MyContentGroup.find().then()
// 查找该内容库下在指定分类下的内容
let query = new wx.BaaS.Query()
query.arrayContains('categories', [1513076252710475])
MyContentGroup.setQuery(query).find().then(res => {
// success
}, err => {
// err
})
{% endifanrxCodeTabs %}
select 使用方法可以参考数据表 - 字段过滤小节
expand 使用方法可以参考数据表 - 字段扩展小节
假设 _richtextcontent 表中有一个类型为 pointer 的字段,名称为 pointer_test_oder
, 指向了 test_order 表
请求示例 1
MyContentGroup.select(['-title']).expand('pointer_test_oder').getContent(1513076305938456).then(res => {
// success
}, err => {
// err
})
请求结果 1
{
"statusCode": 200,
"data": {
"categories": [
1513076252710475
],
"cover": "https://cloud-minapp-1131.cloud.ifanrusercontent.com/1donykIpnuvcRiAX.jpg",
"created_at": 1513076305,
"created_by": 16042162,
"description": "iphoneX 发布",
"group_id": 1513076211190694,
"id": 1513076305938456,
"updated_at": 1513076364,
"pointer_test_order": {
"created_at": 1538966895,
"_table": "test_order",
"id": "5bbac56fbd66033df7fd0aa2",
"created_by": 61736923,
"updated_at": 1538966895
}
}
}
请求示例 2
MyContentGroup.select(['title', 'pointer_test_oder']).expand('pointer_test_oder').find().then(res => {
// success
}, err => {
// err
})
请求结果 2
{
"statusCode": 200,
"data": {
"meta": {
"next": null,
"offset": 0,
"total_count": 1,
"limit": 20,
"previous": null
},
"objects": [
{
"title": "iphone X",
"pointer_test_order": {
"created_at": 1538966895,
"_table": "test_order",
"id": "5bbac56fbd66033df7fd0aa2",
"created_by": 61736923,
"updated_at": 1538966895,
"pointer_test_order": {
"created_at": 1538966895,
"_table": "test_order",
"id": "5bbac56fbd66033df7fd0aa2",
"created_by": 61736923,
"updated_at": 1538966895
}
}
}
]
}
}
MyContentGroup.getCategory(categoryID)
OBJECT 参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
categoryID | Number | 是 | 分类 ID |
返回参数
参数 | 类型 | 说明 |
---|---|---|
children | Array | 子分类列表 |
have_children | Boolean | 是否含有子分类 |
id | Number | 分类 ID |
name | String | 分类名称 |
请求示例
let categoryID = 1513076252710475
MyContentGroup.getCategory(categoryID).then(res => {
// success
}, err => {
// err
})
返回示例
res.data:
{
"have_children": true,
"id": 1513076252710475,
"name": "科技",
"children": [
{
"have_children": false,
"id": 1514515552050186,
"name": "评测"
}
]
}
MyContentGroup.getCategoryList()
请求示例
MyContentGroup.getCategoryList().then(res => {
// success
}, err => {
// err
})
内容查询的分页与排序操作和数据表分页与排序方法一致。
请求示例
MyContentGroup.orderBy('-created_by').limit(5).offset(10).find().then()