我正在尝试查询环回服务器以获取模型之间的关系, 我有一个“Section”模型和一个“item”模型,以及它们之间的hasMany关系,所以我可以使用来自其他客户端的/ sections /:id / items查询部分中的所有项目。
如何从loopback iOS客户端执行相同的查询?任何文档或代码示例?
答案 0 :(得分:4)
iOS SDK支持对Model进行过滤,使用invokeStaticMethod
上的LBModelPrototype
并传递过滤器参数:@{ @"filter[order]":@"inventory ASC",@"filter[limit]":@3}
字符串。
[objectProto invokeStaticMethod:@"filter" parameters:@{ @"filter[order]":@"inventory ASC",@"filter[limit]":@3} success:staticMethodSuccessBlock failure:staticMethodErrorBlock];
我做了一个简单的iOS示例,向您展示针对您可以找到的自定义模型“产品”类型的简单过滤器here
如果多个过滤器请求不是一个好的解决方案,您还可以创建自定义远程方法以在模型类型上提供自定义方法。在Node中间层LoopBack数据Juggler Data Source Juggler提供用于管理多个数据关系的ORM功能
工程团队还就LoopBack-ios GitHub回购提供了一些反馈:
SDK中尚不支持此功能。您应该能够通过继承LBModel并添加类似于此的方法来实现这一目标。
- (void)relatedItems:(LBModelAllSuccessBlock)success
failure:(SLFailureBlock)failure {
[self invokeMethod:@"items"
parameters:@{}
success:^(id value) {
NSAssert([[value class] isSubclassOfClass:[NSArray class]], @"Received non-Array: %@", value);
NSMutableArray *models = [NSMutableArray array];
[value enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
[models addObject:[self modelWithDictionary:obj]];
}];
success(models);
}
failure:failure];
}