【发布时间】:2018-09-03 07:48:03
【问题描述】:
我们如何在 GraphQL 中实现相关的突变?
我决定为自己制作一个作品集来学习 GraphQL 并学习一种新工具。直到我需要在我的作品集中添加一个条目并附上图片时,我才遇到任何困难。
当您将条目添加到投资组合时,它具有以附加图像表示的相关实体。它们有标题、描述和多个标签。图像与投资组合记录本身一样,位于不同的表中,并通过投资组合记录的 ID 链接。
问题就出在这里:如何在一个突变中添加带有其他图像的条目并将它们链接起来,以及如何正确地做到这一点?
我搜索了论坛并清除了我没有找到的手册。关于如何做到这一点,我有几个想法:使用订阅或通过 Promise 执行突变。我想第一种方法是正确的,但仍有疑问。提示如何正确处理此类突变。感谢您的收听。
在开发中,我使用 GraphQL、Apollo、Vue 和 Laravel。
表结构:
CREATE TABLE IF NOT EXISTS `portfolio_works` (
`id` int(10) unsigned NOT NULL,
`portfolio_id` int(10) unsigned NOT NULL,
`title` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`image` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
`description` text COLLATE utf8mb4_unicode_ci,
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
CREATE TABLE IF NOT EXISTS `portfolio_work_images` (
`id` int(10) unsigned NOT NULL,
`portfolio_id` int(10) unsigned NOT NULL,
`portfolio_work_id` int(10) unsigned NOT NULL,
`image` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,
`title` varchar(191) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
【问题讨论】:
标签: javascript node.js laravel api express