指南
批量操作
了解如何以批量方式管理实体。
模型和关联均支持以下批量操作:store、update、destroy 和 restore。
批量创建
该端点期望请求载荷中包含一个带有 resources 数组的对象,数组中的每一项都是一个表示要创建的资源(例如一篇文章)的对象。
// (POST) https://myapp.com/api/posts/batch
{
"resources" : [
{
"title" : "My Post 1",
"body" : "Example body text"
},
{
"title" : "My Post 2",
"body" : "Example body text"
}
]
}
批量更新
该端点期望请求载荷中包含一个带有 resources 对象的对象,其中每个键是资源 id,每一项都是一个表示要更新的资源(例如一篇文章)的对象。
// (PATCH) https://myapp.com/api/posts/batch
{
"resources" : {
"5" : {
"title" : "My Post 1 (updated)",
"body" : "Example updated body text"
},
"6": {
"title" : "My Post 2",
"body" : "Example body text"
}
}
}
批量删除
该端点期望请求载荷中包含一个带有 resources 数组的对象,数组中的每一项都是要删除的资源(例如一篇文章)的 id。
// (DELETE) https://myapp.com/api/posts/batch
{
"resources" : [5,6]
}
批量恢复
该端点期望请求载荷中包含一个带有 resources 数组的对象,数组中的每一项都是要恢复的资源(例如一篇文章)的 id。
// (POST) https://myapp.com/api/posts/batch/restore
{
"resources" : [5,6]
}
禁用批量操作
所有资源默认启用批量操作。如果你想禁用特定端点,可以使用 Laravel 的 except 方法:
Orion::resource('posts', PostsController::class)->except(['batchStore', 'batchUpdate']);
要禁用某个资源上的全部批量操作,可以使用 withoutBatch 方法:
Orion::resource('posts', PostsController::class)->withoutBatch();