[strapi]无法复制集合中的实体

2024-05-13 254 views
1
错误报告 所需的系统信息
  • Node.js 版本:16.20.1
  • NPM版本:8.19.4
  • 斯特拉皮版本:4.11.7
  • 数据库:postgresql 12.4
  • 操作系统:最新MacOS M2
  • 你的项目是Javascript还是Typescript:Javascript
描述错误

最近我们将 Strapi 从 v4.9.0 更新到 v4.11.7。以前一切正常,除非更新到最新版本,我们在尝试复制集合实体时发现问题。当我这样做时,这完全正常,strapi develop但是在使用 then 构建 Strapi 之后yarn buildyarn start抛出错误。

重现行为的步骤
  1. 去一些收藏
  2. 单击实体中的复制按钮
  3. 从浏览器检查网络选项卡
  4. 查看错误
预期行为

它将克隆包含初始实体的所有关系和数据的数据。

截图

图像

代码片段

不适用

额外的背景信息

在此处添加有关该问题的任何其他上下文。

回答

0

我确实看到了警告(不确定这是否应该是警告),但我猜测如果您没有使用草稿并发布,它只会抛出错误而不渲染。

图像

3

我可以确认我们正在使用草稿并发布。此外,我们在开发服务器中不会​​遇到特定问题,只有在构建和部署它时才会遇到。

0

我在两者上都看到了它,它是否真的阻止您复制或只是显示警告?如果这只是可能有意但不确定的警告。

5

是的,当我们尝试复制集合类型中的某些先前实体时,会出现一个网络错误请求,表示相同的内容。您可以查看我在大描述中发布的屏幕截图。

8

嗨@Marc-Roig,此错误有任何更新吗?

6

这不是一个错误,而是有意为之,您无法克隆具有关系的实体,因为我们(目前)不知道这些关系是否会破坏另一个条目,例如一对一关系,其中立即克隆实体会更改您不知道的不同实体。如果您在该屏幕上手动保存实体,您应该会得到您期望的行为。

8

您好@derrickmehaffy,它会按照预期的行为修复吗?

0

您好@derrickmehaffy,它会按照预期的行为修复吗?

你期待@Arieftj 有什么不同?

1

嗨@joshuaellis,

  • v4.3.4:具有关系的实体也被克隆
  • v4.90:仅克隆实体,但不克隆关系
  • v.4.11.5:根本无法克隆

我期望克隆功能像之前在 v4.3.4 中一样运行良好

9

并且,您能否详细说明一下“如果您在该屏幕上时手动保存实体,您应该会得到您期望的行为。”?

5

在 Strapi 版本 4.13.7 中,用户不会重定向到所需页面来编辑唯一字段和关系字段。所以这个功能目前不起作用,并且根本不克隆实体。如果集合类型仅包含唯一的name字段,则克隆过程不会继续,并且该函数将停止运行。

在大多数情况下,就像在本剪辑中一样,我们不使用草稿和发布功能。

https://github.com/strapi/strapi/assets/1507474/cc2f19be-db0f-402c-9b90-dddd35ba89ab

在我看来,即使有或没有有问题的字段,显示克隆实体也可能是一个解决方案。也许只是过滤掉所有关系字段和唯一字段,但不显示继续的对话框会使明显工作的按钮变成死按钮,并使用户感到困惑。

将有问题的字段留空,以便用户必须手动填写它们可能是一个可行的解决方案。或者,如上所述,复制所有关系字段并带有警告“这可能是错误的,请手动检查”也是可行的,尽管这不是我的首选解决方案(太容易出错)。

感谢您的工作,我认为我们现在实现了一种解决方法,以便在此集合类型中为我们的用例提供自定义克隆功能,但总的来说,这不是一个可行的解决方案?

8

嘿@n2o,我遇到了完全相同的问题,直到看到此评论:https://github.com/strapi/strapi/issues/17753#issuecomment-1695485847

我注意到我有package.json axios一个依赖项,一旦我删除了该依赖项,删除了.cache,distnode_modules文件夹,我终于得到了重定向到页面以创建条目的预期行为,只看到警告: 截图 2023-10-23 14 36 01

作为axios依赖项,我遇到了网络中的错误并且没有被重定向的问题。

我正在使用的版本:

Node.js 版本:18.17.0 YARN 版本:3.6.1 Strapi 版本:4.14.5 数据库:mysql 操作系统:使用 Typescript 的最新 MacOS M1

我不确定这是否是每个人的问题,但我希望它能有所帮助

1

@ls-ramos 你的模式中有什么独特的字段吗?

8

@n2o 感谢您的视频,并对迟到的回复表示歉意 - 这看起来确实很奇怪,您应该被重定向。您是否尝试过@ls-ramos 留下的评论? :)

2

@Marc-Roig 是的,我有,我有一个带有 slug 唯一字段、动态区域、一些组件字段和多种类型关系的模式。

我尝试从头开始创建一个 Strapi 项目,但我注意到我无法在干净的项目上重现该问题。奇怪的是,只有按照我上面评论的步骤才能解决问题,但我还没有弄清楚为什么可以解决问题。

7

@ls-ramos 我们将对此进行调查,但这可能是唯一字段的问题,如果在另一个条目使用唯一字段值时尝试克隆实体,则不会收到正确的错误。

5

我遇到了同样的问题,就我而言,原因也是 axios 作为一个独立的 dep。 Strapi 在底层也使用 axios,似乎存在一些冲突。删除 axios 并使用本机获取或节点获取解决了该问题。 “@strapi/strapi”:“4.14.4”,“axios”:“1.5.0”,

2

有类似的问题。我尝试克隆一个页面,前端没有任何反应,但如果我查看网络选项卡,我会看到。

Entity could not be cloned as it has unique and/or relational fields. Please edit those fields manually and save to complete the cloning.

我之前使用的 Strapi 版本 4.7.1 上没有发生这种情况。当我更新到 4.14.0 或更高版本后,我无法克隆/复制页面,并且收到此错误。这是我们经常使用的一个重要功能。