TYPO3 通过 pid 防止级联删除

文图斯

我正在使用 TYPO3 7.x LTS。我为它添加了一个带有 TCA 条目的自定义表。这个表的每条记录都有一个pid对应的页集。但是,当页面被删除时,TYPO3 会自动删除我的表中与该页面相关联的记录。我想这很好,但我处于无法丢失这些记录的情况。

有没有一种很好的方法可以告诉 TYPO3 不要从我的表中删除记录和页面?我研究了 TCA 参考文档,但在那里什么也没找到。

我正在寻找可用于某种字段的类似enableCascadingDelete选项inline

我知道我可以定义一个delete列,该列将被更新而不是被删除,但这个解决方案并不优雅。

我能想到的另一个不优雅的解决方案是将rootLevel => 1放在桌子上并引入另一个字段,例如page_id或其他东西。

我的问题有优雅的解决方案吗?

克里斯蒂安·库恩

正如您已经发现的那样,只有内联才有“enableCascadingDelete”。

页面的概念在这里有所不同:在 TYPO3 中,所有内容都位于某个页面上。这意味着如果一个页面被删除,这个页面上的记录也必须被删除。即使您不删除受影响的记录,您也无法再在后端编辑此记录。这就是如果您删除一个页面,该页面上的记录也会被软删除或硬删除的原因之一。

这基本上意味着:如果您有一些可以在后端编辑的带有 TCA 的 db 表,它属于某个页面,因此如果您删除该页面,它将被删除。

也许重新考虑一下你的记录存储概念:一个偶然的用例是在不同的页面(通常是文件夹类型的页面)上有记录。这是一种很好的做法,例如“新闻”记录、“前端用户”等。例如,介绍包就是这样做的。然后,在前端呈现的主网页树上有插件并告诉他们应该在哪里找到他们的记录。许多插件(阅读:所有好的插件)然后接受一个存储文件夹配置。如果您随后以合理的方式设置访问权限,您可以防止非管理员用户删除您的记录存储文件夹,同时他们仍然可以在后端操作(例如删除)网页和您的记录(例如新闻)不会与页面一起删除,因为它们位于不同的位置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章