解释
在个人作品集网站中,您通常至少有以下三种类型的页面,由以下内容:
- A
Resume
页面组成:text
注意您的教育、工作经验和技能。user
详细信息,例如您的电子邮件、电话号码、社交媒体链接等。
- A
Portfolio
页面组成:text
描述工作项目。images
展示工作项目。video
展示工作项目。
- An
About
页面组成:text
谈论您的生活、爱好或职业目标。images
炫耀你的生活,突出你的个性。video
这样人们就可以看到您的讲话并了解您的个人形象。user
详细信息,例如您的头像(链接自“图片”)或位置。
这三个页面在结构上都是独一无二的,但由来自相同四个集合的相同基本类型的内容组成:text
、images
、video
和 directus_user
details。 随着时间的推移,您可能还想添加更多页面。 例如:多个投资组合_(一个用于用户体验,一个用于开发,一个用于设计,等等)_它们又都是由这些构建块组成的。 对于此内容类别,tweaks 和 restructures 很常见。 简历需要更新。 投资组合随时间扩展。
对于需要上述结构灵活性类型的数据或内容,M2A 关系是一种合适的数据管理方式。 Directus 提供了一个特殊的 M2A 接口,可以快速轻松地构建数据和内容。
在这个秘籍中,我们将解释如何使用 M2A 数据模型构建上述个人投资组合。 然后在最后的提示中,讨论这种方法的优缺点,并列出其他替代方法。
The Recipe
Create the Initial Collections
text
- id
- text_content (a standard input field with a Markdown Interface)
videos
- id
- video_url (a standard input field)
在 Directus 中,您的 user
和 images
集合已经存在。 它们是内置的 系统集合:directus_files
和 directus_users
。 如果您想将地理坐标或社交媒体链接添加到“directus_users”,请根据需要添加字段。
Configure an M2A
现在我们需要创建一个“页面”集合,它将包含我们的 M2A 关系。
- 创建“页面”集合。
pages
- id
- title (a standard STRING input field, to store the page title)
- page_content (an M2A with a content builder Interface)
- 配置字段
pages.page_content
所以它与:text
videos
directus_users
directus_files
至此,我们的基本数据模型配置就完成了。
- 根据需要为每个数据模型配置权限。 您可能希望为我们制作的集合授予公共读取权限,并为
directus_users
和directus_files
配置自定义访问权限。
Build and Display Content
- Create items for your
Resume
,Portfolio
, andAbout
pages.
最后的提示
接下来,您需要使用 API 访问这些。 如果您尝试使用“/items/pages”,则“page_content”会返回一个 ID 数组。 相反,您需要添加一个 字段参数 来获取嵌套关系数据。
使用 M2A 构建内容时,需要牢记一些重要事项。
有必要吗?
我们食谱中的用例是一个三页的投资组合网站,总体上非常简单。
数据模型中的 M2A 涉及相当多的复杂性,但在前端也是如此,因为您必须构建前端逻辑来遍历每个页面项目,识别其组成内容类型,并将每个类型注入适当的 组件或模板。 对于三页的投资组合博客,前端开发可能比您预料的要复杂得多。 您可以改为选择 Singleton 集合,然后创建三个独立的 (但不那么复杂) 页面。
或者,如果您计划拥有越来越多由相同内容类型组成的独特页面,则使用具有更复杂前端逻辑的 M2A 最终可能比无数单例更有效。
M2A 仅适用于内容吗?
尽管 Directus M2A 界面在设计时考虑到了内容构建,但底层数据模型并不限于任何特定的数据类型。 您可以将它用于任何您想要的用途,从_库存到物联网网络等等!_