【问题标题】:Netlify CMS - how to store an array of objects via config.yml collectionsNetlify CMS - 如何通过 config.yml 集合存储对象数组
【发布时间】:2019-04-04 22:49:26
【问题描述】:

我对 Netlify 的 CMS 有点困惑 - 特别是在通过 config.yml 定义架构时。我正在使用带有 Gatsby 静态站点的 Netlify CMS,以允许最终用户更新网站上的一些动态数据。

我想要达到的目标:

我希望 CMS 上的数据类型允许用户创建新的旅行日期,包括最大入住人数和当前入住人数(即当前有多少人预订了所述旅行)。

为了实现这一点,我目前使用了这个 config.yml(这个 config.yml 位于我的 Gatsby 项目的 static/admin 中 w.r.t 项目根目录):

backend:
  name: git-gateway
  branch: master

publish_mode: editorial_workflow

media_folder: src/images/uploads
public_folder: /uploads

collections:
  - name: "tourInfo"
    label: "Tour Info"
    description: "Upcoming tours and their availability"
    files:
      - label: "tour"
        name: "Tour"
        file: "static/tours.json"
        fields:
          - {label: "Tour Date", name: "date", widget: "datetime"}
          - {label: "Total Places", name: "totalPlaces", widget: "number"}
          - {label: "Filled Places", name: "filledPlaces", widget: "number"}

这似乎不是我想要的,但我似乎无法创建多个巡演日期实例,但只能创建一个。也许这是我对集合类型的基本误解,但我认为我可以将tour 定义为单个文件,然后用大量的游览实例填充它。

有人能指出我如何在不死的情况下实现这组旅游数据点的正确方向吗?

【问题讨论】:

    标签: gatsby netlify netlify-cms


    【解决方案1】:

    您可以将该集合设为folder collection 或使用list widget

    一个使用列表的例子,你的代码:

    collections:
      - name: "tourInfo"
        label: "Tour Info"
        description: "Upcoming tours and their availability"
        files:
          - label: "tour"
            name: "Tour"
            file: "static/tours.json"
            fields:
              - label: "Tour List"
                name: "tourList"
                widget: "list"
                fields:
                  - {label: "Tour Date", name: "date", widget: "datetime"}
                  - {label: "Total Places", name: "totalPlaces", widget: "number"}
                  - {label: "Filled Places", name: "filledPlaces", widget: "number"}
    

    因此您的旅行日期、地点等可以放在列表的fields 下。但是,对于大量数据,它看起来真的很不规则,您可能想要使用自定义宽度对其进行分页,或者使用文件夹集合。

    【讨论】:

    • 谢谢,为了清楚起见,在该示例中,您将在何处添加 file(s) 变量?
    • 我自己试过了,我似乎无法弄清楚如何将list 数据放在一个文件下。如果您能更新以说明如何操作,我将不胜感激。
    • @BML91 当然,我已经更新了示例以使用您的示例。如果它仍然不适合你,请告诉我
    • @ManUtopiK 我认为目前不可能,netlifyCMS 生成的 json 将始终包装在一个对象中
    • @DerekNguyen 谢谢你的回答。那就是我看完这篇github.com/netlify/netlify-cms/issues/531后得出的结论
    猜你喜欢
    • 1970-01-01
    • 2019-08-22
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    • 2013-09-22
    • 1970-01-01
    • 1970-01-01
    • 2020-06-26
    相关资源
    最近更新 更多