1

我正在尝试查询环回服务器以了解模型之间的关系,我有一个“Section”模型和一个“item”模型,以及它们之间的 hasMany 关系,因此我可以使用 /sections/:id 查询一个部分中的所有项目/来自休息客户端的项目。

如何从环回 iOS 客户端执行相同的查询?任何文档或代码示例?

4

1 回答 1

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 示例,向您展示了一个针对自定义模型“产品”类型的简单过滤器,您可以在此处找到它

如果多个过滤器请求不是一个好的解决方案,您还可以创建自定义远程方法来为模型类型提供自定义方法。在 Node 中间层 LoopBack 数据 Juggler 数据源 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];
}
于 2013-12-16T21:42:45.840 回答