创建于更新于渡槽
createdAt updatedAt aqueduct
在猫鼬中,模式有 timestamp: true
选项,它会为添加的任何模型项自动填充 createdAt
和 updatedAt
。
Aqueduct 中有类似的东西吗?
如果没有,我该如何手动操作?
我目前试过这个,但像往常一样失败了:
@Operation.post()
Future<Response> createICD(@Bind.body() ICD body) async {
body.createdAt = DateTime.now();
final query = Query<ICD>(context)..values = body;
final insertICD = await query.insert();
return Response.ok({'state': true, 'data': insertICD});
}
上述方法的错误是:
Converting object to an encodable object failed: Instance of 'ICD'
发送响应失败;您需要在 insertICD
上致电 asMap()
。您提供的响应主体对象是一个标准的 Dart 映射 - 它没有任何特殊的编码行为,因此它不知道如何编码像 ManagedObject
这样的复杂类型。在托管对象上调用 asMap()
以将其转换为标准 Dart 映射:
@Operation.post()
Future<Response> createICD(@Bind.body() ICD body) async {
body.createdAt = DateTime.now();
final query = Query<ICD>(context)..values = body;
final insertICD = await query.insert();
return Response.ok({'state': true, 'data': insertICD.asMap()});
}
此外,请参阅 http://aqueduct.io/docs/db/validations/#update-and-insert-callbacks 以了解在 create/update 个事件中设置时间戳。
在猫鼬中,模式有 timestamp: true
选项,它会为添加的任何模型项自动填充 createdAt
和 updatedAt
。
Aqueduct 中有类似的东西吗?
如果没有,我该如何手动操作?
我目前试过这个,但像往常一样失败了:
@Operation.post()
Future<Response> createICD(@Bind.body() ICD body) async {
body.createdAt = DateTime.now();
final query = Query<ICD>(context)..values = body;
final insertICD = await query.insert();
return Response.ok({'state': true, 'data': insertICD});
}
上述方法的错误是:
Converting object to an encodable object failed: Instance of 'ICD'
发送响应失败;您需要在 insertICD
上致电 asMap()
。您提供的响应主体对象是一个标准的 Dart 映射 - 它没有任何特殊的编码行为,因此它不知道如何编码像 ManagedObject
这样的复杂类型。在托管对象上调用 asMap()
以将其转换为标准 Dart 映射:
@Operation.post()
Future<Response> createICD(@Bind.body() ICD body) async {
body.createdAt = DateTime.now();
final query = Query<ICD>(context)..values = body;
final insertICD = await query.insert();
return Response.ok({'state': true, 'data': insertICD.asMap()});
}
此外,请参阅 http://aqueduct.io/docs/db/validations/#update-and-insert-callbacks 以了解在 create/update 个事件中设置时间戳。