【问题标题】:How to implement multi language models using loopback如何使用环回实现多语言模型
【发布时间】:2018-06-23 21:37:27
【问题描述】:

我想构建一个具有强循环环回的 API,其中包括具有多种语言字符串的模型。 例如。具有多种语言标题的产品。

我喜欢存储对象

{
  "price": 10
  "title": {
    "en": "englishTitle",
    "de": "germanTitle"
  }
}

在环回中定义这样的模型的最佳方法是什么?

谢谢!

【问题讨论】:

    标签: json node.js strongloop loopback


    【解决方案1】:

    对多语言标题使用相关模型。所以你的主模型,比如说,Product 有相关的模型 Title 使用 hasMany 关系。您将能够查询特定产品所需的语言标题。这是可能的示例之一。

    型号Product

    {
      "name": "Product",
      "base": "PersistedModel",
      "idInjection": true,
      "properties": {
        "price": {
          "type": "number"
        },
        "defaultTitle": {
          "type": "string"
        }
      },
      "validations": [],
      "relations": {
        "titles": {
          "type": "hasMany",
          "model": "Title",
          "foreignKey": ""
        }
      },
      "acls": [],
      "methods": {}
    }
    

    型号Title

    {
      "name": "Title",
      "base": "PersistedModel",
      "idInjection": true,
      "properties": {
        "language": {
          "type": "string"
        },
        "title": {
          "type": "string"
        }
      },
      "validations": [],
      "relations": {
        "product": {
          "type": "belongsTo",
          "model": "Product",
          "foreignKey": ""
        }
      },
      "acls": [],
      "methods": {}
    }
    

    然后您可以查询Product,包括相关的Title,并使用所需语言进行过滤。 defaultTitle 当然是可选的。

    【讨论】:

    • 在我的案例中,我添加了一个 localisedString 模型,因此我可以将其推广到多个属性中,您如何看待这种方法?:{“name”:“LocalizedString”,“base”: “模型”,“idInjection”:假,“选项”:{“validateUpsert”:真},“属性”:{“id”:假,“en”:{“类型”:“字符串”,“必需”: false }, "cn": { "type": "string", "required": false } }, "validations": [], "relations": {}, "acls": [], "methods": { } }
    • 我认为这种方法很好,但你的实现不是很好。您的模型将如何与您的父模型相关联?如果您需要另一种语言,您是否要更改模型(和数据库)结构?只需尝试使用您提出的解决方案来确保它是否良好。您也可以在 Stackoverflow 上搜索 本地化数据库结构 或类似的东西以获得更一般的答案。对数据库结构理论的设计做一些学习是很好的。我说的是使用关系数据库。
    猜你喜欢
    • 2022-10-09
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多